说起跨域就要了解一下同源策略
-
同源策略
三要素:域名、端口、协议
如果三者有一个不同,浏览器发送请求时就会出现跨域问题。 -
什么是跨域
在浏览器运行时,一个域下的文档或脚本向其他域发送请求、调用资源的行为称为跨域。
-
解决方案
- 服务器反向代理
拓展:靠近客户端的叫服务器代理,靠近服务器的叫反向代理。
例如www.123.com/index.html需要调用www.456.com/server.php,可以写一个接口www.123.com/server.php,由这个接口在后端去调用www.456.com/server.php并拿到返回值,然后再返回给index.html,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。
2、后台设置Header
在接口脚本中加入以下两句即可:
header('Access-Control-Allow-Origin:*');//允许所有来源访问
header('Access-Control-Allow-Method:POST,GET');//允许访问的方式
3 JSONP解决方案通常为了减轻web服务器的负载,我们把js、css,img等静态资源分离到另一台独立域名的服务器上,在html页面中再通过相应的标签从不同域名下加载静态资源,而被浏览器允许,基于此原理,我们可以通过动态创建script,再请求一个带参网址实现跨域通信。
缺点:只能发送get请求












网友评论