跨域具体原因:
1.浏览器限制;跨域结果是返回的,但是浏览器限制拦截了;
2.跨域(同源策略):域名、端口号。。。
3.发送的XHR(XmlHttpRequest)请求, 类型
解决办法:
1.浏览器不限制;(命令行制定参数让浏览器不验证);
2.xhr:创建script在路径(jsonp原理);
dataType:'jsop'
3.跨域:
被调用方:返回头里修改响应头 (支持)
调用方:代理指定跳转(隐藏)
??图片src和cdn为什么能实现====jsonp 一种非正式传输协议;
json 是一种数据格式
;jsonp 是一种数据调用的方式。
你可以简单的理解为 带callback的json就是jsonp
简单理解就是利用<script>标签没有跨域限制的“漏洞”(历史遗迹啊)来达到与第三方通讯的目的。当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,形如:
<script src="http://www.example.net/api?param1=1¶m2=2"></script>
并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。
第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如:
callback({"name":"hax","gender":"Male"})
这样浏览器会调用callback函数,并传递解析后json对象作为参数
<script src="http://www.example.net/api?param1=1¶m2=2"></script>
并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。
第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如:
callback({"name":"hax","gender":"Male"})
这样浏览器会调用callback函数,并传递解析后json对象作为参数
作者:贺师俊
链接:https://www.zhihu.com/question/19966531/answer/13502030
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
什么是跨域?怎么解决跨域问题?
如何解决ajax跨域问题(转)
什么是跨域?怎么解决跨域?
JavaScript跨域总结与解决办法
什么是跨域?解决跨域的五种方法。
什么是跨域,如何解决跨域问题
八种方式实现跨域请求