我创建了一个简单的资源,通过GET输出我的json对象。网址为http://127.0.0.1:8000/api/v1/advert/?format=json
,工作正常。现在,当我尝试使用jQuery ajax方法访问资源时,我得到了;
这是我的JavaScript;
$.ajax({
url : 'http://127.0.0.1:8000/api/v1/advert/',
dataType : 'json',
type : 'GET',
data : { format: 'json' },
success : function(data) {
console.log(data);
}
});
造成这种情况的原因是什么,更重要的是如何纠正?当我尝试用简单的资源实现Django Piston时会发生同样的错误,所以我猜这个问题更多的是与实际的AJAX请求有关吗?
EDIT。
我稍微调整了jQuery ajax调用并包含了请求内容。
答案 0 :(得分:4)
经过多次头部刮擦并尝试使用curl模拟错误后,我终于找到了问题的根源。我正在使用Google Chrome浏览器,其扩展名为Adblock Plus(Adblock Plus(Beta)1.2)。禁用此扩展后,ajax请求正常工作!我不确定ABP究竟是如何影响它的,但它绝对是问题的根源。
答案 1 :(得分:0)
我尝试过你自己的tastypie API的ajax代码,我知道它正在运行。
我还得到jQuery ajax命令最初发送的OPTIONS请求的“红色”结果行。如果我查看该请求的响应,我发现它实际上是OK 200。
似乎ajax调用发出OPTIONS请求,获得200响应状态然后取消传输,因为它已经在“允许”响应头中具有所需的一切。
在你的情况下看起来它实际上由于某种原因失败了(或者浏览器可能只是以不同的方式描述它?)。
你能添加你得到的回复标题吗?
(我会分享我的截图,但我仍在处理我的代表: - /)