我无法使用 jQuery 和 abort() 函数停止 ajax 请求
我的 jQuery 如下:
var x = $.ajax({
dataType: "jsonp",
url: "https://ajax.googleapis.com/ajax/services/search/images?q=google&v=1.0",
success: function(msg){
alert( "Jsonp data: " + msg );
}
});
alert(x); // x is undefined
// x.abort()
您可以在这里尝试此代码: http://jsbin.com/iyile3/2/edit
我想要停止这个ajax请求并停止这个ajax请求的成功函数。
但我得到的是“x”未定义,我想我不会停止这个ajax请求及其成功函数。
那么有人可以帮助我吗?
非常感谢!
My jQuery is below:
var x = $.ajax({
dataType: "jsonp",
url: "https://ajax.googleapis.com/ajax/services/search/images?q=google&v=1.0",
success: function(msg){
alert( "Jsonp data: " + msg );
}
});
alert(x); // x is undefined
// x.abort()
You can try this code here: http://jsbin.com/iyile3/2/edit
I want stop this ajax request and stop this ajax request's success function.
But what I get is that "x" is undefined , I think I doesn't stop this ajax request and its success function.
So can anyone help me?
Thank you very much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯,这是有道理的。
jsonp
调用不是普通的XMLHttpRequest
(.ajax() 通常返回)。这种方式是行不通的,因为您无法突破同源策略
。JSON-Padding 适用于动态脚本标签插入。所以基本上,jQuery 只是在您的网站上创建一个
标记并在其上加载数据。根本没有 XHR 对象。
我不认为有办法提前中止这种请求,但我希望如果我错了,有人会纠正我。
Well that makes sense.
A
jsonp
call is not an ordinaryXMLHttpRequest
(which .ajax() normally returns). It would not work that way since you cannot break out thesame origin policy
.JSON-Padding works with dynamic script tag insertion. So basically, jQuery just creates a
<script>
tag on your site and loads the data over that. NoXHR
object at all.I don't think there is a way to early abort that kind of request, but I hope someone will correct me here if I'm wrong.
我认为 文档 在这方面可能有点误导。使用 JSONP 时不会发出 AJAX 请求。在这种情况下,
ajax
函数返回一个undefined
值,而不是XMLHTTPRequest
的对象。I think the documentation may be a little misleading on this one. No AJAX request is made when using JSONP. In this case, the
ajax
function returns anundefined
value instead of the object ofXMLHTTPRequest
.