我正在执行以下 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
我不知道这是否相关,但通常当在客户端上向不同域中的服务器请求 JSON 时,由于Same Origin Policy ,您需要使用 JSONP 而不是 JSON 。不幸的是,他们的 API 似乎不支持使用 JSONP —— 因此他们必须期望您从服务器与他们的网站进行交互。在这种情况下,您需要服务器上的代理方法将调用转换为 API,以便客户端调用与页面位于同一域中的服务器。
| 归档时间: |
|
| 查看次数: |
13813 次 |
| 最近记录: |