跨域解决方案

跨域的解决方式
1:JSONP: 只支持get请求
方式一:创建一个script标签,然后将回调函数作为参数,传给服务器

function callback (res) {}

var JSONP = document.createElement("script")

JSONP.type = "text/javascript"

JSONP.src = "url"

document.getElementsByTagName('head')[0].appentChild(JSONP)

方式二:直接使用script标签

function jsonpCallback(res){}

script type="text/javascript" src="http://crossdomain.com/services.php?callback=jsonpCallback

服务器返回数据:

jsonpCallback(data)

总结:

script请求的数据,是直接作为js代码进行运行的。

将回调函数的的名字传给服务器,服务器返回数据给前端时,将数据已如上形式返回,前端接收到后相当于直接调用了jsonpCallback这个函数

2:CORS协议
方法:前端一般什么也不做,只需要后台进行设置即可。后台在响应体中设置

如果需要跨域携带cookie,前端请求时需要设置withCredentials为true

Access-Control-Allow-Origin

Access-Control-Allow-Credentials

你可能感兴趣的:(跨域解决方案)