我有一个像这样的代码片段
var searchurl="http://mysite.com/searchpath?q=test";
$.ajax({
type: "GET",
url: searchurl,
cache: false,
dataType : "jsonp",
async : false,
success: function(data){
alert("success");
}
});
alert("outside ajax");
问题是我在工作中没有看到异步。 “ajax之外”是我得到的第一个弹出窗口,第二个是“成功”弹出窗口。有什么明显的东西我不见了吗?
从我的评论中加入Anothny的回复
我的测试环境是win xp sp2,FF 3.0.8 / w Firebug + IE 8.和JQuery v1.3.2。我从萤火虫身上找不到任何明显的东西。
您是否愿意使用此网址“http://pipes.yahoo.com/pipes/pipe.run?_id=1nWYbWm82xGjQylL00qv4w&_render=json&textinput1=obama&_callback=?”
尝试上述代码答案 0 :(得分:6)
好吧,你不能有一个同步的jsonp请求。实现jsonp的方式是通过脚本标记hack来允许跨域访问。所以$ .ajax只是忽略了异步属性,因为它只是不能发出同步的jsonp请求。
作为旁注,你应该尝试&避免同步ajax请求。虽然它们在设计上看起来可能看起来更简单,但它们会在网络保留的情况下冻结浏览器并使用户体验非常不愉快。