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

jQuery Ajax在访问资源时失败(Django Tastypie),jquery,ajax,django,rest,tastypie,Jquery,Ajax,Django,Rest,Tastypie,我创建了一个简单的资源,通过GET输出我的json对象。网址是http://127.0.0.1:8000/api/v1/advert/?format=json 而且效果很好。现在,当我尝试使用jQueryAjax方法访问资源时,我得到: 这是我的JavaScript $.ajax({ url : 'http://127.0.0.1:8000/api/v1/advert/', dataType : 'json', type : 'GET',

我创建了一个简单的资源,通过GET输出我的json对象。网址是http://127.0.0.1:8000/api/v1/advert/?format=json 而且效果很好。现在,当我尝试使用jQueryAjax方法访问资源时,我得到:

这是我的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活塞时,也会发生同样的错误,所以我猜这是一个问题,更多的是与实际的AJAX请求有关吗

编辑


我稍微调整了jQuery ajax调用,并包含了请求内容。

我尝试了您的ajax代码,以获得我自己的tastypeapi,我知道它正在工作

对于jqueryajax命令最初发送的选项请求,我还会得到一条红色的结果行。如果我查看该请求的响应,我会发现它实际上是OK 200

ajax调用似乎发出了OPTIONS请求,获得了200响应状态,然后取消了传输,因为它已经在Allow-response报头中包含了所需的所有内容

在您的情况下,它看起来像是由于某种原因而实际失败了,或者浏览器只是以不同的方式描述了它

您可以添加得到的响应标题吗


我想与大家分享我的截图,但我仍在为我的代表工作:-/

我尝试了你的ajax代码,以获得我自己的TastypieAPI,我知道它正在工作

对于jqueryajax命令最初发送的选项请求,我还会得到一条红色的结果行。如果我查看该请求的响应,我会发现它实际上是OK 200

ajax调用似乎发出了OPTIONS请求,获得了200响应状态,然后取消了传输,因为它已经在Allow-response报头中包含了所需的所有内容

在您的情况下,它看起来像是由于某种原因而实际失败了,或者浏览器只是以不同的方式描述了它

您可以添加得到的响应标题吗


我想与大家分享我的截图,但我仍在努力改进我的rep:-/

在经历了一些令人挠头的时刻并尝试使用curl模拟错误之后,我终于找到了问题的根源。我使用的是谷歌Chrome浏览器,扩展名为Adblock Plus Adblock Plus Beta 1.2。禁用此扩展后,ajax请求工作正常!我不确定ABP到底是如何影响它的,但它无疑是问题的根源。

经过一些令人挠头的时刻,并尝试使用curl模拟错误,我终于找到了问题的根源。我使用的是谷歌Chrome浏览器,扩展名为Adblock Plus Adblock Plus Beta 1.2。禁用此扩展后,ajax请求工作正常!我不确定ABP到底是如何影响它的,但它肯定是问题的根源。

您不应该使用数据选项来包含GET参数例如format吗?您好,我已经更新了JS代码,现在使用数据参数。不幸的是,它仍然失败。你不应该使用数据选项来包含GET参数如format吗?嗨,我已经更新了JS代码,现在可以使用数据参数了。不幸的是,它仍然失败。您好,我已经用额外的屏幕截图更新了原始帖子,并稍微修改了ajax调用。它仍然失败,尽管略有不同-请求方法现在是GET而不是OPTIONS。也没有响应标题信息,所以我不认为ajax调用真的存在?您好,我已经用额外的屏幕截图更新了原始帖子,并稍微修改了ajax调用。它仍然失败,尽管略有不同-请求方法现在是GET而不是OPTIONS。也没有响应头信息,所以我认为ajax调用实际上不存在?