因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑,就会产生一个同源政策,不是同一个地方出来的是不允许进行交互的。
解决跨域的方法:
1、通过jsonp跨域。
2、通过修改document.domain来跨子域。
3、使用window.name来进行跨域。
4、使用HTML5中新引进的window.postMessage方法来跨域传送数据。
5、使用代理服务器,使用代理方式跨域更加直接,因为同源限制是浏览器实现的。如果请求不是从浏览器发起的,就不存在跨域问题了。
跨域的特点:
1、跨域只存在于浏览器,不在浏览器发请求是不会存在跨域问题的。
2、跨域是出现在ajax请求中,普通请求不会。
3、所有的跨域,都必须经过服务端的允许和配合,未经server端的允许和配合就实现跨越,说明浏览器有漏洞,不安全。
以上内容参考 百度百科-跨域网络
首先你需要阅读 CORS ,首先你需要阅读 CORS ,
首先你需要阅读 CORS ,重要的事情说3遍
当浏览器发送一个跨域的xhr时,需要注意的是,首先会发送一个 Request Method: OPTIONS 类型的请求,如下图
当你使用了前端的vue,react,angular等框架时,可以直接使用他们的脚手架,脚手架提供一个配置好的 webpack ,可以在配置文件中的proxy添加代理地址,这样可以避免跨域问题,如果是自己搭建的框架自行配置 webpack 依然可以实现代理
后台的静态服务器(apache,nginx)一般都带有代理功能,可以自行配置,代理前端项目的xhr请求到真实的后台接口地址,这样可以避免跨域问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)