首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONP不使用gravatar

JSONP不使用gravatar
EN

Stack Overflow用户
提问于 2013-07-05 15:51:26
回答 1查看 427关注 0票数 1

在我的应用程序中,我试图在注册过程中从gravatar中获取用户的个人资料,这样他就不必输入自己的名字和姓氏。我正在使用下面的代码-

代码语言:javascript
复制
    $.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!');
                },
        });

当找不到用户的电子邮件时,我在控制台中收到以下错误-

代码语言:javascript
复制
GET http://en.gravatar.com/79ac7efbf9deb9b7f7965d9aa564078b.json?callback=jQuery191009235964552499354_1373008918711 404 (Not Found)

但是,错误函数不会被调用。(有人能解释一下原因吗?)但是,如果找到用户的电子邮件,则会调用成功函数。

我还尝试了jquery-jsonp,使用以下函数-

代码语言:javascript
复制
$.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格式发送数据时,我得到了一个新的错误-

代码语言:javascript
复制
Uncaught SyntaxError: Unexpected token :

有没有人能告诉我怎么做?

EN

回答 1

Stack Overflow用户

发布于 2013-07-05 15:59:36

作为参考,我在这里发布了一个简单的JSONP示例过程。

代码语言:javascript
复制
 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".
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17483778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档