gpt4 book ai didi

javascript - 为什么在jsonp请求中看不到jquery注入(inject)的script标签?

转载 作者:行者123 更新时间:2023-12-03 09:48:43 25 4
gpt4 key购买 nike

我熟悉 JSONP 及其工作原理,但我注意到一些令人困惑的事情。

当使用数据类型为“jsonp”的 jquery 的 $.ajax 方法时,我读过的每个帐户都表明 jquery 会将脚本标记注入(inject)到 dom 中以发出请求。

我的代码可以工作(在我的基本测试页面上),但是当我使用 Chrome 开发工具检查时,我没有看到任何注入(inject)的脚本标记。给出了什么?

$.ajax({

url: "https://status.github.com/api/status.json",

dataType: "jsonp",

type: "GET",

success: function( response ) {
console.log( response ); // successfully logs data from github
}

});

查看网络选项卡时,这是 jquery 请求的 url:

https://status.github.com/api/status.json?callback=jQuery2130779439534759149_1434721871588&_=1434721871589

还有,jquery把这个函数放在哪里了?

function jQuery2130779439534759149_1434721871588(){
// my success callback I presume
}

最佳答案

这是我不久前在网上读到的内容(并记下以供引用)。 jQuery 的作用是仅将脚本标记添加到 DOM,直到回调(成功函数)执行完毕。该标签被添加到标题中。它还向窗口对象添加了一个函数,该函数在返回时被调用。

jQuery2130779439534759149_1434721871588只是一个生活在window对象上的对象,是一个动态添加的函数。当函数执行完毕后,它将把自己从窗口对象中删除。

回调相关函数(来自缩小的 jQuery 源代码)如下所示。

function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}

希望有帮助。

关于javascript - 为什么在jsonp请求中看不到jquery注入(inject)的script标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30939787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com