jQuery Ajax在访问资源时失败(Django Tastypie)
我创建了一个简单的资源,通过GET输出我的json对象。网址是http://127.0.0.1:8000/api/v1/advert/?format=json 而且效果很好。现在,当我尝试使用jQueryAjax方法访问资源时,我得到: 这是我的JavaScriptjQuery 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',
$.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调用实际上不存在?