【问题标题】:django error: [Errno 32] Broken pipe whan I make an ajax calldjango 错误:[Errno 32] 我进行 ajax 调用时管道损坏
【发布时间】:2014-09-28 09:13:45
【问题描述】:

每次我发出 ajax 请求时都会收到此错误,仅在此项目中。 涉及的代码如下:

[JS AJAX 调用]

    var url = '/eden/find_flights/';
    var csrf_token = getCookie('csrftoken');

    $.ajax({
        'url': url,
        'data':  {
            'trip': JSON.stringify(trip),
            'travellers': JSON.stringify(travellers),
            'csrfmiddlewaretoken': csrf_token
        },
        'type': 'POST',
        'dataType': 'json',
        'complete': function(response) {

            $("#result").html(response.responseText); //.animate({'marginTop': "-=700px"}, 'slow', 'swing', function() {});
        },
    });

[views.py]

@csrf_exempt
def find_flights(request):

    flights = {}

    return render_to_response('flight_search_results.html', flights, context_instance=RequestContext(request))

dict 航班将充满数据,但现在并不重要。我得到的问题是在萤火虫中获得一条红线(如错误),但没有错误信号(如果我使用“在新选项卡中打开”选项我得到一个空白页)并且在 django 控制台中:

[05/Aug/2014 15:29:38] "POST /eden/find_flights/ HTTP/1.1" 200 2
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run self.finish_response()
File "/usr/lib/python2.7/wsgiref/handlers.py", line 128, in finish_response self.write(data)
File "/usr/lib/python2.7/wsgiref/handlers.py", line 212, in write self.send_headers()
File "/usr/lib/python2.7/wsgiref/handlers.py", line 270, in send_headers self.send_preamble()
File "/usr/lib/python2.7/wsgiref/handlers.py", line 194, in send_preamble 'Date: %s\r\n' % format_date_time(time.time())
File "/usr/lib/python2.7/socket.py", line 324, in write self.flush()
File "/usr/lib/python2.7/socket.py", line 303, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
[05/Aug/2014 15:29:38] "POST /eden/find_flights/ HTTP/1.1" 500 59
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 46750)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self)
File "/usr/local/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 126, in __init__ super(WSGIRequestHandler, self).__init__(*args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__ self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 710, in finish self.wfile.close()
File "/usr/lib/python2.7/socket.py", line 279, in close self.flush()
File "/usr/lib/python2.7/socket.py", line 303, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------

我已经寻找过这个错误,但我无法理解 wtf 导致它的原因,也不知道我能做些什么来避免它。

【问题讨论】:

标签: ajax django


【解决方案1】:

你有这个代码:

var url = '/eden/find_flights/';
var csrf_token = getCookie('csrftoken');

$.ajax({
    'url': url,
    'data':  {
        'trip': JSON.stringify(trip),
        'travellers': JSON.stringify(travellers),
        'csrfmiddlewaretoken': csrf_token
    },
    'type': 'POST',
    'dataType': 'json',
    'complete': function(response) {

        $("#result").html(response.responseText); //.animate({'marginTop': "-=700px"}, 'slow', 'swing', function() {});
    },
});

这是否属于.submit() 事件处理程序?如果是这样,请让您的event 致电preventDefault。否则,您的页面将加载并停止 ajax 调用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-01-04
  • 2017-04-22
  • 2014-07-04
相关资源
最近更新 更多