Python django tastypie simple GET给出400错误
我正在使用python2.7、django1.6和apache2。我已启用跨域访问。我试过使用和不使用crsf代币。我不知道我做错了什么 访问: url/to/site/contacts/api/v1/adresponses/1 工作正常,因此可以设置tastypie。我可以看到广告的回应 有人请帮忙。几天来,我一直在努力让tastypie工作 这是我的api.pyPython django tastypie simple GET给出400错误,python,django,python-2.7,tastypie,http-status-code-400,Python,Django,Python 2.7,Tastypie,Http Status Code 400,我正在使用python2.7、django1.6和apache2。我已启用跨域访问。我试过使用和不使用crsf代币。我不知道我做错了什么 访问: url/to/site/contacts/api/v1/adresponses/1 工作正常,因此可以设置tastypie。我可以看到广告的回应 有人请帮忙。几天来,我一直在努力让tastypie工作 这是我的api.py class UserResource(ModelResource): class Meta: qu
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
fields=['username', 'id']
allowed_methods = ['get']
authorization = Authorization()
authentication = Authentication()
class AdResponsesResource(ModelResource):
users = fields.ManyToManyField('contacts.api.UserResource', 'users',
related_name='adresponse')
class Meta:
queryset = AdResponses.objects.all()
resource_name = 'adresponses'
authorization = Authorization()
authentication = Authentication()
这是我的ajax电话
$(function (){
$.ajax({
url: 'url/to/site/contacts/api/v1/adresponses/1',
type: 'GET',
accepts: 'application/json',
dataType: 'json'
});
所以我不完全确定为什么我最初发布的js不起作用,但我看到了这个例子,它按照预期工作。也许是因为我没有成功的功能
$.ajax({
url: '../../api/v1/user/',
contentType: 'application/json',
type: 'GET',
success: function(data, textStatus, jqXHR) {
// Your processing of the data here.
console.log(data);
}
});
我需要查看api的url设置,以便为您提供更多帮助,但对于初学者,您提供的原始url:
url: 'url/to/site/contacts/api/v1/adresponses/1',
你的答案是什么
url: '../../api/v1/user/',
不要调用同一个资源,这会使诊断更加困难
但是,第一个url是绝对路径,第二个是相对路径,这可能会导致设置出现问题,从而产生400错误
所以试试这个:
$.ajax({
url: '../../api/v1/adresponses/1',
contentType: 'application/json',
type: 'GET',
success: function(data, textStatus, jqXHR) {
console.log(data);
}
});
是的,如果没有成功功能,您将不会看到任何结果:
success: function(data, textStatus, jqXHR) {
console.log(data);
}
该console.log使您能够在控制台中看到结果
您的原始代码未提供:
contentType: 'application/json',
你有:
accepts: 'application/json',
我认为问题在于在url末尾使用“/”是强制性的。 您应该尝试使用url:'url/to/site/contacts/api/v1/adresponses/1/'
当您访问url/to/site/contacts/api/v1/adresponses/1时,它会重定向到url/to/site/contacts/api/v1/adresponses/1/,具体取决于您的tastypie配置我知道如果不成功,我会看到结果,但我的问题是它是否导致了400错误。根据你的回答,我猜不是,错误是由“接受”部分引起的。谢谢您的回复!:D