Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Django+;WebKit=管道破裂_Django_Webkit_Broken Pipe - Fatal编程技术网

Django+;WebKit=管道破裂

Django+;WebKit=管道破裂,django,webkit,broken-pipe,Django,Webkit,Broken Pipe,我正在运行Django 1.2开发服务器,每当我使用Chrome或Safari从中加载页面时,都会收到这些断管错误消息。我的同事从他的开发服务器加载页面时,也会出现错误。我们在使用Opera或Firefox时没有这些错误 Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/

我正在运行Django 1.2开发服务器,每当我使用Chrome或Safari从中加载页面时,都会收到这些断管错误消息。我的同事从他的开发服务器加载页面时,也会出现错误。我们在使用Opera或Firefox时没有这些错误

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 281, in run self.finish_response()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 321, in finish_response self.write(data)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 417, in write self._write(data)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 300, in write self.flush()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 286, in flush self._sock.sendall(buffer)
error: [Errno 32] Broken pipe

有人能帮我吗?我快疯了

这不是Django的问题。您的浏览器很可能出现错误

这是经常发生的错误 每当浏览器关闭 在安装dev服务器时进行连接 仍在忙于发送数据


查看更多信息。

我可能遇到了相关问题

在Windows上使用Safari和Chrome时,在django runserver上的本地计算机上,一些视图随机不返回对ajax POST请求的响应

解决办法是:

我通过POST传递给视图的数据只有一个键/val对:“action=remove”。现在,在我看来,我实际上并没有使用这些数据。一旦我将数据分配给视图中的一个var(即foo=request.POST['action']),视图每次都会返回对ajax请求的响应


绝对疯狂

我最近在django v1.1.1开发服务器和Chrome 7.0.517.44上遇到了这个问题

我发现的“修复”总是在初始加载后对页面进行硬刷新(按住Shift键并单击Chrome中的“重新加载”按钮),这会导致Chrome忽略刷新请求的任何资源的缓存

因此,这让我相信这是一个问题,因为Chrome臭名昭著地倾向于尽可能地缓存所有内容;即使不应该。我的猜测是Chrome正在发出一个资源请求,然后一旦意识到它已经缓存了资源,就会立即中断与该资源的连接


这几乎是一个可以忍受的解决方法,除非任何AJAX请求仍然会导致问题。

当浏览器关闭与服务器的连接时,管道破裂。这个问题以前在与
相关的ajax post请求中发生过,这可能是由于javascript函数调度ajax调用时出错造成的

例如,该功能可能由链接上的单击事件触发,如果未阻止链接的默认操作,您将立即收到一个辅助请求,浏览器将关闭上一个连接,而不等待响应完成。 当我忘记向事件处理程序添加
returnfalse
时,我也遇到了同样的问题

如果触发ajax的事件处理程序抛出异常,也会出现同样的症状


仔细调试发出ajax请求的函数和该函数的返回值。

如果使用
JavaScript
客户端出现这种情况,解决方案如下。 您必须在事件处理程序的开头和结尾添加
preventDefault
returnfalse
,如:

$('#btn_analyze').click(function(e) {
    e.preventDefault()
    $.post('/api/v1/analyzer/',
        data,
        "json").done(function(response) {
        //...
    }).fail(function() {
        Logger.error(" Error ")
    })

    return false
}) // analyze click

运行请求的视图需要多长时间?第一次很快,但在我得到断管错误后,下一个页面加载需要10-15秒才能完成:SI在使用django开发服务器(1.3 pre alpha)时遇到了这个问题,这个答案是正确的,django没有故障(浏览器是Chrome/Safari)。通过将ajax请求作为POST而不是GET发送,我能够解决这个问题。由于某些原因,如果ajax请求是通过GET发出的,那么两个浏览器都没有等待响应。正确!@loretoparisi的答案给出了导致这种行为的原因。谢谢!我只是花了一个小时才弄明白,我需要jQueryAjax中的“returnfalse”。这篇文章只需要它,所以这一次把我甩了…@jmagnusson对,我在javascript客户端上也遇到了同样的问题,这就是为什么。然后在答案中解释!非常感谢。这正是导致Chrome出现问题的原因。Firefox会很好地理解它。向上投票!