Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX帖子-我需要发送回复吗?_Ajax_Django_Post_Httpresponse - Fatal编程技术网

AJAX帖子-我需要发送回复吗?

AJAX帖子-我需要发送回复吗?,ajax,django,post,httpresponse,Ajax,Django,Post,Httpresponse,我编写了一个AJAX函数,它向我的服务器发送POST请求(运行Django 1.9) 请求应该在服务器上触发一个进程-客户端无需执行任何操作。因此,我没有在我的视图的post方法中添加return 但是,在我的服务器的输出中,我发现了一些错误消息: Internal Server Error: <url> Traceback (most recent call last): File "/.../python3.5/site-packages/django/core/hand

我编写了一个AJAX函数,它向我的服务器发送POST请求(运行Django 1.9)

请求应该在服务器上触发一个进程-客户端无需执行任何操作。因此,我没有在我的视图的post方法中添加
return

但是,在我的服务器的输出中,我发现了一些错误消息:

Internal Server Error: <url>
Traceback (most recent call last):  
  File "/.../python3.5/site-packages/django/core/handlers/base.py", line 158, in get_response  
    % (callback.__module__, view_name))  
ValueError: The view <view> didn't return an HttpResponse object. It returned None instead.  
ERROR:django.request:Internal Server Error: <url>  
Traceback (most recent call last):  
  File "/.../python3.5/site-packages/django/core/handlers/base.py", line 158, in get_response  
    % (callback.__module__, view_name))  
ValueError: The view <view> didn't return an HttpResponse object. It returned None instead.  
[01/Feb/2016 00:30:28] "POST <url> HTTP/1.1" 500 14165
对方法进行了修改

然而,这对我来说似乎有点过时了

  • 是否需要发送对POST请求的响应
  • 如果是,我能发送的最基本回复是什么?(是我用过的那个吗?)

您所做的是在向服务器发送请求后处理客户端“不需要任何东西”的正确方法


但是,您通常希望向客户机提供某种成功消息/操作,而不管它有多简单,只是为了使其对用户友好。当用户按下一个按钮,看起来什么也没发生时,这会让他们感到困惑。同样,当出现问题时,他们应该得到一条错误消息,这样他们就可以比什么都没发生时更快地判断出问题(并因此告诉你)。

你所做的是在向服务器发送请求后正确处理客户机“不需要任何东西”


但是,您通常希望向客户机提供某种成功消息/操作,而不管它有多简单,只是为了使其对用户友好。当用户按下一个按钮,看起来什么也没发生时,这会让他们感到困惑。同样,当出现问题时,应该给他们一条错误消息,这样他们可以比什么都没发生时更快地判断出问题(并因此告诉你)。

没有必要对任何请求发送任何响应。你可以关闭连接,但是

  • django将抛出一个错误,您没有发送任何响应(即使是空响应)
  • HTTP服务器(nginx、apache或其他)希望您发送任何东西(这就是django将发送错误响应的原因之一)
  • 您的JavaScript将把请求视为失败的请求
您可以发送的最小响应是:

HTTP/1.1 204 No content
请注意,上面一行之后应该有一个空行(但markdown不允许我在代码块末尾输入空行)。您可以使用以下方式在django中发送:

return HttpResponse(status=204)

但django会投进一些头球。你可以摆脱它们,但这是毫无意义的…

没有必要对任何请求发送任何响应。你可以关闭连接,但是

  • django将抛出一个错误,您没有发送任何响应(即使是空响应)
  • HTTP服务器(nginx、apache或其他)希望您发送任何东西(这就是django将发送错误响应的原因之一)
  • 您的JavaScript将把请求视为失败的请求
您可以发送的最小响应是:

HTTP/1.1 204 No content
请注意,上面一行之后应该有一个空行(但markdown不允许我在代码块末尾输入空行)。您可以使用以下方式在django中发送:

return HttpResponse(status=204)

但django会投进一些头球。你可以摆脱它们,但这是毫无意义的…

谢谢!在我的例子中,服务器是一个树莓圆周率旁边的用户启动一个音乐播放器。所以有某种“回应”(虽然不在网页上)。我仍然在考虑网页上的一个不显眼的通知。谢谢!在我的例子中,服务器是一个树莓圆周率旁边的用户启动一个音乐播放器。所以有某种“回应”(虽然不在网页上)。不过我还是想在网页上发布一条不显眼的通知。谢谢!这就是我所需要知道的:)谢谢!这就是我所需要知道的:)