1

我想在我的页面上包含一个功能,用于检查用户是否在其电子邮件中拥有 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

有什么想法吗?提前非常感谢!!

4

1 回答 1

5

通常跨域 AJAX 请求被拒绝,因为它是一个安全问题。请参阅此博客文章:http ://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/

您是否尝试过jsonp数据类型?当我访问 twitter 的推文 json 提要时,我使用 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
  });

  };
于 2011-09-07T14:24:49.520 回答