我正在执行以下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'); } ); });
而且没有收到预期的警报消息。相反,Firebug说我收到“未实现501”。
为什么?我需要怎么做才能解决此问题?
如果我转到Firebug中与AJAX调用相对应的URL,则会下载一个JSON文件,其中包含预期的数据。
我注意到的一件事是,萤火虫说的是OPTIONS而不是GET:
替代文字http://grab.by/grabs/b1a13d92a4fc69aa310880a5d7a06b95.png
我不知道这是否相关,但是由于相同的原产地政策,通常在客户端上向其他域中的服务器请求JSON时,您将需要使用JSONP而不是JSON 。不幸的是,他们的API似乎不支持使用JSONP -因此,他们必须期望您从服务器与他们的网站进行交互。在这种情况下,您将需要服务器上的代理方法将调用转换为它们的API,以便在与页面相同的域中对服务器进行客户端调用。