跨域问题的原因及解决方案

原因:

  是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。

解决方案有十种:

  1.通过Jsonp实现跨域  (常用)

  2.通过修改document.domain来跨子域

  3.window.name+iframe跨域

  4.跨文档消息传输window.postMessage

  5.通过CORS(跨域资源共享)解决AJAX跨域

  6.通过Nginx反向代理

  7.Nodejs中间件代理(两次跨域)

  8.websocket协议跨域

  9.localhost.hash+iframe跨域

  10.通过设置Access-Control-Allow-Origin    

 

 

PS:前面九种的具体原理和方案参考:九种跨域方案实现原理

  最后一种参考:Ajax 设置Access-Control-Allow-Origin实现跨域访问

上一篇:文件上传漏洞


下一篇:处理跨域Options预检请求