我使用的是Django REST框架。我有一个模型,看起来像这样:
class Post(models.Model):
title = models.CharField(max_length=100, null=False)
content = HTMLField()
created_at = models.DateField(auto_now_add=True)
authors = models.ManyToManyField(User)使用如下所示的api视图和序列化程序:
class CreateStoryApiView(CreateAPIView):
serializer_class = PostSerializer
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('title', 'content', 'authors')转到实际的端点,我实际上可以成功提交。我尝试使用Ajax获取详细信息并将数据提交到端点,但由于某些原因,我总是收到一个400坏请求错误。如果我删除了authors字段,就不会出现这个错误。下面是Ajax请求的样子:
$.ajax({
type: 'POST',
url: '/api/save-post/',
data: {
"csrfmiddlewaretoken": getCookie('csrftoken'),
"title": "dasf",
"desct": "dasf",
"content": "fdasf",
"authors": [1,2]
},
success: function (msg) {
console.log(msg);
}
});当我尝试这个Ajax请求时,我得到了一个400错误的请求。为什么我不能成功提交我的数组?我尝试过"authors[]": [1,2]和"authors": "[1,2]"以及许多其他的组合,但由于某种原因,似乎什么都不起作用。我做错了什么?
发布于 2019-06-26 08:50:57
检查您的django settings.py文件。您需要正确配置next参数,才能从另一台服务器发送请求。
CORS_ORIGIN_WHITELIST = (
'localhost',
'your-domain.com',
'127.0.0.1',
'127.0.0.1:8080'
)
CSRF_TRUSTED_ORIGINS = (
'your-domain.com',
)
CORS_ORIGIN_ALLOW_ALL = True
CORS_EXPOSE_HEADERS = [
'Access-Control-Allow-Origin',
'Access-Control-Allow-Headers'
]
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'cache-control',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
)我怀疑这是因为它
https://stackoverflow.com/questions/56755454
复制相似问题