访问资源时jQuery Ajax失败(Django Tastypie)

时间:2012-07-07 17:29:18

标签: jquery ajax django rest tastypie

我创建了一个简单的资源,通过GET输出我的json对象。网址为http://127.0.0.1:8000/api/v1/advert/?format=json,工作正常。现在,当我尝试使用jQuery ajax方法访问资源时,我得到了;

enter image description here

enter image description here

这是我的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调用并包含了请求内容。

2 个答案:

答案 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响应状态然后取消传输,因为它已经在“允许”响应头中具有所需的一切。

在你的情况下看起来它实际上由于某种原因失败了(或者浏览器可能只是以不同的方式描述它?)。

你能添加你得到的回复标题吗?

(我会分享我的截图,但我仍在处理我的代表: - /)