为什么在jsonp请求中看不到jquery注入的脚本标签?
why can't I see the script tag injected by jquery in jsonp request?
我熟悉 JSONP 及其工作原理,但我注意到一些令人困惑的地方。
当使用数据类型为 "jsonp" 的 jquery 的 $.ajax 方法时,我读过的每个帐户都建议 jquery 将脚本标记注入dom 发出请求。
我的代码有效(在我的基本测试页面上),但是当我使用 Chrome 开发工具检查时,我没有看到任何注入的脚本标记。给出了什么?
$.ajax({
url: "https://status.github.com/api/status.json",
dataType: "jsonp",
type: "GET",
success: function( response ) {
console.log( response ); // successfully logs data from github
}
});
查看网络选项卡时,这是 url jquery 请求:
还有,jquery这个函数放在哪里?
function jQuery2130779439534759149_1434721871588(){
// my success callback I presume
}
这是我不久前在网上读到的(并记下来以供参考)。 jQuery 的作用是将脚本标记添加到 DOM 直到回调(成功函数)执行完毕。标签被添加到 header。它还向 window object 添加了一个函数,该函数在 return.
上调用
jQuery2130779439534759149_1434721871588
只是一个 object 生活在 window object 上,是一个动态添加的功能。当函数完成执行时,它将自己从 window object.
中删除
回调相关函数(来自缩小的 jQuery 来源)如下所示。
function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}
希望对您有所帮助。
它实际上被添加然后删除 - 如果你检查你的 DOM - 特别是在递归调用的情况下 - 你会看到 DOM 亮点(在 Chrome 开发工具中) -每当调用时 - 您可以观察到 <Script..>
标记在执行后被添加和删除。
我熟悉 JSONP 及其工作原理,但我注意到一些令人困惑的地方。
当使用数据类型为 "jsonp" 的 jquery 的 $.ajax 方法时,我读过的每个帐户都建议 jquery 将脚本标记注入dom 发出请求。
我的代码有效(在我的基本测试页面上),但是当我使用 Chrome 开发工具检查时,我没有看到任何注入的脚本标记。给出了什么?
$.ajax({
url: "https://status.github.com/api/status.json",
dataType: "jsonp",
type: "GET",
success: function( response ) {
console.log( response ); // successfully logs data from github
}
});
查看网络选项卡时,这是 url jquery 请求:
还有,jquery这个函数放在哪里?
function jQuery2130779439534759149_1434721871588(){
// my success callback I presume
}
这是我不久前在网上读到的(并记下来以供参考)。 jQuery 的作用是将脚本标记添加到 DOM 直到回调(成功函数)执行完毕。标签被添加到 header。它还向 window object 添加了一个函数,该函数在 return.
上调用jQuery2130779439534759149_1434721871588
只是一个 object 生活在 window object 上,是一个动态添加的功能。当函数完成执行时,它将自己从 window object.
回调相关函数(来自缩小的 jQuery 来源)如下所示。
function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}
希望对您有所帮助。
它实际上被添加然后删除 - 如果你检查你的 DOM - 特别是在递归调用的情况下 - 你会看到 DOM 亮点(在 Chrome 开发工具中) -每当调用时 - 您可以观察到 <Script..>
标记在执行后被添加和删除。