作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在书签中使用 jQuery JSONP AJAX 请求,我发现这些请求在某些页面上有效,但在其他页面上无效。下面是示例代码:
jQuery.ajax({
url: "http://echo.jsontest.com/key/value/one/two",
type: "GET",
dataType: "jsonp",
cache: false
}).done( function(data){
console.log(data);
}).fail(function(jqXHR, textStatus, errorThrown){
console.log("errorThrown: " + errorThrown);
});
如果您访问以下亚马逊页面:
http://www.amazon.com/dp/B00336EUTK?psc=1
并在控制台中执行上面的代码,你会发现它有效。但是,如果您访问此亚马逊页面:
http://www.amazon.com/dp/B00E5UHSYW?psc=1
并在控制台中执行上述代码,出现以下错误:
TypeError: Cannot call method 'done' of undefined
是什么原因导致此问题以及如何解决?
编辑:我注意到的一件有趣的事情是,在 AJAX 请求起作用的页面上,回调参数似乎总是如下所示:
callback=jQuery1640586556919850409_1390439428297
在失败的页面上,它总是看起来像这样:
callback=jsonp1390439502398
我在许多不同的亚马逊页面上尝试过这一点,看起来这种行为是一致的。
也许这只是一个巧合,但我认为这可能值得指出。
最佳答案
无论你相信与否,这两个页面使用不同版本的 jQuery。
您可以通过在控制台中输入以下内容来自行确定:$().jquery
the first page正在运行v1.6.2
the second page正在运行v1.2.6
查看 jQuery.ajax()
( here ) 的 jQuery 文档,看起来它直到 v1.5 才添加到 jQuery
希望有帮助。
关于javascript - jQuery JSONP AJAX 请求有时会失败,并显示 "TypeError: Cannot call method ' 完成'未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297450/
我是一名优秀的程序员,十分优秀!