为什么我会收到 501 Not Implemented 错误?

Cha*_*son 5 ajax json

我正在执行以下 AJAX 调用:

$(document).ready(function() {

  $.getJSON('https://sendgrid.com/api/user.stats.json',
    {
      'api_user': 'me@mydomain.com',
      'api_key': 'MYAPIKEY',
      'user': 'me@mydomain.com',
      'category': 'MY_CATEGORY'
    },
    function(response){
      alert('received response');
    }
  );

});
Run Code Online (Sandbox Code Playgroud)

我没有收到预期的警报消息。相反,Firebug 说我收到“501 Not Implemented”。

为什么?我需要做什么来解决这个问题?

如果我转到 Firebug 中与 AJAX 调用相对应的 URL,我会下载一个 JSON 文件,其中包含预期的数据。

我注意到的一件事是 firebug 说的是 OPTIONS 而不是 GET:

替代文本http://grab.by/grabs/b1a13d92a4fc69aa310880a5d7a06b95.png

tva*_*son 2

我不知道这是否相关,但通常当在客户端上向不同域中的服务器请求 JSON 时,由于Same Origin Policy ,您需要使用 JSONP 而不是 JSON 。不幸的是,他们的 API 似乎不支持使用 JSONP —— 因此他们必须期望您从服务器与他们的网站进行交互。在这种情况下,您需要服务器上的代理方法将调用转换为 API,以便客户端调用与页面位于同一域中的服务器。