Jquery 使用Django Rest框架创建主干模型
我正在尝试使用Django rest框架创建一个带有rest api的新模型 这是我的序列化程序:Jquery 使用Django Rest框架创建主干模型,jquery,django-rest-framework,backbone-model,Jquery,Django Rest Framework,Backbone Model,我正在尝试使用Django rest框架创建一个带有rest api的新模型 这是我的序列化程序: class FooSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Foo 这是我的观点 @api_view(['POST', 'GET','DELETE','OPTIONS']) def foos(request): """ API endpoint to cr
class FooSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Foo
这是我的观点
@api_view(['POST', 'GET','DELETE','OPTIONS'])
def foos(request):
"""
API endpoint to create, delete and get foos
"""
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
model = Foo
serializer_class = FooSerializer
if request.method == "POST":
data = JSONParser().parse(request)
serializer = FooSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JSONResponse(serializer.data, status=201)
else:
return JSONResponse(serializer.errors, status=400)
return Response(serializer.data)
在我看来:
foo = new Foo
name:'Bla di bla di'
foo.save()
除了失败的选项外,没有任何其他选项
OPTIONS http://127.0.0.1:8080/api/foo/
我不知道该怎么办,如果我省略了帖子的contentType:“application/json”部分(在手动发布时),就不会发生这种情况
它在我的终端中与CURL一起工作
在我的chrome Inspector>网络中,我得到以下信息:
Request URL:http://127.0.0.1:8080/api/foo/
Request Headersview source
Access-Control-Request-Headers:accept, origin, authorization, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Origin:http://localhost:8000
Pragma:no-cache
请求,而响应为空
编辑
我用RESTAPI打开了服务器,同样的事情也发生了!所以这告诉我一件事,它与服务器无关。一定是AJAX的东西
我完全搞糊涂了:-(当进行跨域请求时,在发布帖子之前进行选项调用是正常的 如果发生期权认购,但没有后续POST,最有可能的原因是CORs失败 检查服务器响应-它是否返回正确的标头 您需要3个: “访问控制允许来源” “访问控制允许方法”
“访问控制允许标头” 这些必须符合你的要求 有关快速修复方法,请参见此答案:
或者此页面提供背景+完整解释:您可能希望在此基础上展开:“帖子突然失败,选项失败”-你的意思不太清楚。我的意思是,选项失败,然后停止。没有帖子。如果你没有建设性的评论,为什么你要评论?我是在尝试建设性。不清楚你看到了什么行为,或者你是否在客户端或服务器端收到错误。