ajax跨域访问问题总结
原链接地址:http://lonewolf.me/content/2017/02/15/ajax-cross-domain.html
原创博客,转载请注明。
问题
当用 ajax 在 a.com 中访问 b.com 时,将会出现 XMLHttpRequest cannot load...
等错误提示,这就是跨域访问所带来的问题。
解决方法
Chrome中可使用插件 Allow-Control-Allow-Origin: * 进行解决,它可在 response header
中加入 Allow-Control-Allow-Origin: *
信息。
这个方法有个缺点,如果想访问时带上 cookie,那它将无效,具体见 https://github.com/vitvad/Access-Control-Allow-Origin/issues/34。
解决方法2
带上 cookie 的方法是: jQuery.ajaxSetup({xhrFields:{withCredentials:true}})
。
这一问题的解决方法就是使用另一个插件 Access-Control-Allow-Credentials: true。
它也有个缺点,每次启动chrome后都要重新启用才有效。。。