在我的应用程序中,我试图在注册过程中从gravatar中获取用户的个人资料,这样他就不必输入自己的名字和姓氏。我正在使用下面的代码-
$.ajax({
url: "http://www.gravatar.com/" + get_gravatar_url(email) + ".json",
async: false,
type: 'GET',
dataType: 'jsonp',
crossDomain: true,
success: function(data){
console.log('data = ' + gravatar_profile);
data_received = 1;
},
error: function() {
console.log('oh noes!');
},
});当找不到用户的电子邮件时,我在控制台中收到以下错误-
GET http://en.gravatar.com/79ac7efbf9deb9b7f7965d9aa564078b.json?callback=jQuery191009235964552499354_1373008918711 404 (Not Found)但是,错误函数不会被调用。(有人能解释一下原因吗?)但是,如果找到用户的电子邮件,则会调用成功函数。
我还尝试了jquery-jsonp,使用以下函数-
$.jsonp({
async: false,
url: "http://www.gravatar.com/" + get_gravatar_url(email) + ".json",
dataType: "jsonp",
crossDomain: true,
timeout: 5000,
success: function(data){
alert(data);
},
error: function(XHR, textStatus, errorThrown){
alert("ERREUR: " + textStatus);
//alert("ERREUR: " + errorThrown);
},
});虽然404错误仍然显示在控制台中,但至少它会检测到它并显示警报。但是,当gravatar以json格式发送数据时,我得到了一个新的错误-
Uncaught SyntaxError: Unexpected token :有没有人能告诉我怎么做?
发布于 2013-07-05 15:59:36
作为参考,我在这里发布了一个简单的JSONP示例过程。
OTPrequest = function(){
customerObj = {'data':'abc'}
$.ajax({
type:'GET',
dataType: 'jsonp',
data: customerObj,
jsonpCallback: 'loadit',
url: 'http://abc/retrieve',
success: function (responseData) { //Your server responseData should be like this "loadit('otp sent')"
loadit(responseData)
},
error: function(xhr, textStatus, errorThrown){
//Error handler.
}
});
function loadit(data){
console.log(data);
alert(data); //This will alert the popup as "opt sent".
}
}https://stackoverflow.com/questions/17483778
复制相似问题