[英]JS function call won't work in Chrome and Opera (JS + jQuery)
[英]Why won't this jQuery ajax call work in chrome
我无法在Chrome中使用此$ .ajax函数。 当我发出ajax请求时,永远不会返回响应。 当我在Chrome开发者工具中查看此内容时,它指出json请求仍处于待处理状态。 到目前为止,我已经找到了将这些参数添加到选项中的建议。
'{类型:“发布”,数据:“,缓存:错误,异步:错误}'
但是,这些选项都没有使其起作用。
try {
var o = {username: 'adobeedge', count: 4};
var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count;
$("body").append('<p>attempting ajax</p>');
$.ajax({url: twitterUrl,
dataType: 'jsonp',
type: "post",
data: '',
cache: false,
async: false,
})
.success(function(data) {
$.each(data, function(index, item) {
$("body").append(item.text);
});
}) ;
}
catch (error) {
alert("Error: " + error.toString());
}
以下代码在我的情况下工作正常
我的chrome版本:23.0.1271.95 m
try {
var o = {username: 'adobeedge', count: 4};
var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count;
$("body").append('<p>attempting ajax</p>');
$.ajax({url: twitterUrl,
dataType: 'jsonp',
type: "post",
data: '',
cache: false,
async: false,
})
.success(function(data) {
$.each(data, function(index, item) {
$("body").append(item.text);
});
}) ;
}
catch (error) {
alert("Error: " + error.toString());
}
我不知道这是否会有帮助,但是我从未见过ajax调用外部附带的成功函数。 我看过的所有jQuery ajax文档都在末尾附加了“ .done”。 但是,我只看到成功定义为实际ajax调用本身中的一个选项。 您可以尝试如下重写:
$.ajax({
url: twitterUrl,
dataType: 'jsonp',
type: "post",
data: '',
cache: false,
async: false,
success: function(data) {
$.each(data, function(index, item) {
$("body").append(item.text);
});
}
});
看看是否有帮助。 还有另一篇关于堆栈溢出的文章可能对您也有所帮助。 本文介绍了“成功:”与“ .done”的不同用法。 对于阿贾克斯文档的更多信息,请访问为jQuery的API文档阿贾克斯 。
希望这可以帮助。
jsonp
不支持同步调用。 尝试async: true
。
我无法在Twitter受阻的办公室工作,因此无法尝试。
今天,我在OSX 10.8.2上完全修补的Chrome上与该问题作了斗争,并提供了您所描述的确切症状。 这是我可以通过Google找到的唯一问题。
原来,这是由名为Disconnect的注重隐私的扩展引起的。
尝试禁用扩展功能,看看是否可以解决问题。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.