为了账号安全,请及时绑定邮箱和手机立即绑定

请教jQuery JSONP跨域原理?

请教jQuery JSONP跨域原理?

慕村225694 2018-07-18 19:12:56
jQuery的$.ajax跨域时发出的请求类型是xhr,并不是script,也没有发现动态生成script标签,也没有发现类似jQuery191011762070982318096_1487035510995这样的函数。(可能是我没有发现而已)请教jQuery是怎样动态声明callback函数的,怎样下载script文件的?感谢回答!!
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

a.js

function callback(data){
  alert(data);
}

b.js

callback({name:'Li', age:13});

你自己已经解答的差不多了,如果我就把这两个文件顺序用script标签引入,会alert出传入callback的实参。

如果先声明了callback函数,然后将b.js以动态script标签引入,因为script的src引入js不受同源限制,所以我们可以请求其他服务器上的文件,其他服务器上可以根据script中的参数动态生成类似于b.js的文件,传到客户端自然会执行。

jsonp跟ajax没任何关系,jQuery只不过把他们封装在了一起,你说xhr,应该使用的是cors跨域。

两点: json是良好的数据传输形式, script标签引入文件不受同源限制


查看完整回答
反对 回复 2018-07-23
  • 3 回答
  • 0 关注
  • 761 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信