我想在我的网页上添加一项功能,用于检查用户是否拥有带有电子邮件的Gravatar帐户。如果是,他们应该显示该图片,如果没有,他们应该给予其他选择。
我正在尝试按如下方式执行此操作:
$.ajax({
url: 'https://secure.gravatar.com/' + md5(user.email) + '.json',
method: 'GET',
timeout: 4000,
success: function successFn() {
doGravatarStuff();
},
error: function errorFn(response, status, error) {
console.log(response.status); //debug
}
});
这总是在Internet Explorer上返回错误状态0,我似乎无法弄清楚原因。我尝试将'dataType'更改为'json','html'等,但这似乎没有帮助。
此外,也许这是一个相关的问题,如果我在FF或Crome上测试这个问题,并且用户确实没有帐户,则根据'net'选项卡读数返回404错误
404 Not Found 649ms
但'response.status'似乎仍为0
任何想法?非常感谢提前!!
答案 0 :(得分:5)
通常,跨域AJAX请求被拒绝,因为它是安全的东西。请参阅此博客文章:http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/
您是否尝试过jsonp
dataType?当我访问twitter的tweet json feed时,我使用jsonp。
示例:
var urls = "http://twitter.com/status/user_timeline/" + username + ".json?count=" + pageSize + "&page=" + currentPage;
$.ajax({
beforeSend: function () {
$("#ajax-load").fadeIn()
},
url: urls,
cache: true,
type: 'GET',
dataType: 'jsonp',
success: twitterCallback2
});
};