用jQuery+JSONP解决跨域访问,edge浏览器不行,其他浏览器都可以,这是为什么,如何解决? 10

 我来答
jjaiyya
2017-01-06 · 超过33用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:33万
展开全部

JSONP是兼容旧浏览器所使用的一种跨域技术,虽然缺点多,但强在所有版本浏览器都支持,因为它使用是浏览器脚本加载技术。edge浏览器不可以不行。


用jQuery去学JavaScript,有点不合适,虽然方便好用,一有问题就懵。


JSONP是由数据和回调函数组成的

  • 回调函数:当响应到时,在页面中的数据处理函数;回调函数的名字一般在请求前指定。

  • 而数据是传入回调函数的JSON数据。


例子:

<script>
function loadPhotos(data) {
   if (data.stat == 'ok') {
   } 
};
</script>
<script src="https://api.flickr.com/services/rest/?format=json
&jsoncallback=loadPhotos&api_key=<YOUR API KEY HERE>"></script>
追问

这个代码除了edge,其他浏览器都能正确收到服务端返回的12345,edge上进入到error,弹出“此站点提示  404“,另外可能1个月前吧,我在edge上试过的,还正常返回呢。能不能是浏览器自身对这种跨域做了限制?

追答

几天没上百度了,刚才看到


jQuery的ajax具体操作不懂,我跨域不用jQuery,实在不知你上面的代码什么意思,只知道jQuery这么地方:

  • jQuery不支持同步中进行跨源请求。

  • 如果你的请求中有用户凭证,则需要XMLHttpRequest对象的withCredentials属性



浏览器有同源策略的。主要是比较请求头的中Origin值与请求的URL来判断同源还是跨源的。浏览器只是客户端跟服务器的一个中介,权限(限制)在于服务器端。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式