解决方案:
-使用jsonp
jsonp是使用scripe标签来突破同源策略的一种实现方式,只能发送get请求,就算是用jqueryajax指明了post请求,jQuery也会在发送请求的过程中转化为get请求。具体实现方案未研究。
-使用子页面
使用嵌套iframe子页面的方法,避开同源策略。
-跨域资源共享 CORS
CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。
它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制,
CORS(跨来源资源共享)是一份浏览器技术的规范,提供了Web服务从不同网域传来沙盒脚本的方法,以避开浏览器的同源策略,是JSONP模式的现代版。与JSONP不同,CORS 除了GET要求方法以外也支援其他的HTTP要求。用CORS可以让网页设计师用一般的XMLHttpRequest,这种方式的错误处理比JSONP要来的好。另一方面,JSONP可以在不支援CORS的老旧浏览器上运作。
简介
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。
整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信
实现方案:
设置请求头:Access-Control-Allow-Origin