所以,我刚刚开始在我的一个Django项目中使用jQuery,但我有一个非常noobie的问题.
在django视图中,您必须从视图中返回一个HttpResponse对象,但有时我不需要返回任何内容.例如,我可能只是通过ajax更新数据库而不需要发回任何东西.所以我的问题是,在那种情况下你做了什么?
谢谢
HTTP响应不仅仅是向浏览器发送内容.响应与状态代码和多个HTTP标头相关联.另外,响应可以包含正文(实际内容).
我认为发送没有正文的HttpResponse对象是可以的.那是:
return HttpResponse()
这将发送状态代码为200 OK的HTTP响应,这正是服务器端发生的事情,即操作成功,一切正常.虽然有更好的方法,请参阅下文.
休息地说,当操作遇到问题时,您应该返回带有适当状态代码的HTTP响应.就像指定服务器端错误的5XX状态代码之一一样.
现在,查看所有这些HTTP状态代码,我们会看到201 Created状态代码,当您将POST数据存储在某个地方(如DB)时,这是一个比200 OK更合适的代码.在这种情况下,您应该在视图中执行以下操作:
return HttpResponse(status=201)
并且,正如已经提到的那样,您可以在JavaScript中利用这些状态代码,以便向用户提供更多信息,或者为您的请求选择其他策略.
您仍然希望返回一个HttpResponse,让jQuery知道响应是成功还是失败.包含jQuery的大多数javascript库都在寻找200 ok响应.更不用说返回一个受影响的行数或投票数的JSON对象可能很有用.