跨域:
协议、域名、端口任一不同则跨域,解决办法有以下几种:
a、 CORS(Cross-Origin-Resource-Sharing,跨域资源共享)
使用自定义的 HTTP 头部(包括请求页面的源信息,如协议、域名、端口号)让浏览器与服务器沟通,从而决定请求或响应是应该成功还是失败。
b、 JSONP(JSON with padding,填充式 JSON)
创建一个动态 script 标签,src 属性设置为一个跨域 URL,URL 中指定一个回调,当响应到来时,调用页面中响应的函数处理数据。
c、 修改 document.domain 跨子域
比如主页面嵌入 iframe(子域内),将 iframe 的 document.domain 设置为父域,这样主页面就可以访问子页面的函数。
d、使用 window.name 来跨域
在一个窗口的生命周期内,所有页面共享 window.name 。
e、 使用后台做代理
将需要跨域的请求发送给本域的后台,后台通过模拟 HTTP 请求去访问其他域的资源。
网友评论