跨域和Jsonp

176 阅读1分钟

同源策略

如果两个页面的协议,域名,端口相同,那么两个页面具有相同的源。

浏览器提供的一个安全功能。

跨域

出现跨域的根本原因是因为浏览器的同源策略不允许非同源的URL进行资源交互。 两种解决方式:JSONP(只能支持GET请求不支持POST请求)和CORS(W3C标准)

JSONP

实现原理:由于网页会拦截Ajax发出的非同源请求,但是标签不受浏览器同源策略的影响,可以通过src属性,请求非同源的js脚本。并通过函数调用形式接受跨域接口相应回来的数据。

JSONP和Ajax之间没有任何关系,不能把JSONP请求数据方式叫做Ajax,因为JSONP没有用到XMLHttpRequest这个对象。