2016-11-17 44 views
2

後重定向時,我有一個JQuery的AJAX調用:瓶破裂的水管AJAX調用

$.getJSON($SCRIPT_ROOT + '/_click_btn?btnId='+$(this).attr("id"), 
      $('form').serialize(), 
      function(data) { 
      // return to send_messages page 
      window.location = 'send_messages'; 
}); 

它沒有做任何幻想。它只是將一些表單數據保存到數據庫中(使用SQLAlchemy)。我在window.location語句中放置了一個斷點,如果我將重定向延遲了1-2秒,那麼斷開的管道就不會發生。處理這個問題的最佳做法是什麼?

另一個需要注意的事項是在AJAX調用完成後DB會話保持打開狀態。

錯誤消息如下。

Exception in thread Thread-1: 
Traceback (most recent call last): 
File "/usr/lib64/python2.7/threading.py", line 813, in __bootstrap_inner self.run() 
File "/usr/lib64/python2.7/threading.py", line 766, in run self.__target(*self.__args, **self.__kwargs) 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 656, in inner srv.serve_forever() 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 496, in serve_forever HTTPServer.serve_forever(self) 
File "/usr/lib64/python2.7/SocketServer.py", line 238, in serve_forever 
self._handle_request_noblock() 
File "/usr/lib64/python2.7/SocketServer.py", line 297, in _handle_request_noblock 
self.handle_error(request, client_address) 
File "/usr/lib64/python2.7/SocketServer.py", line 295, in _handle_request_noblock 
self.process_request(request, client_address) 
File "/usr/lib64/python2.7/SocketServer.py", line 321, in process_request 
self.finish_request(request, client_address) 
File "/usr/lib64/python2.7/SocketServer.py", line 334, in finish_request 
self.RequestHandlerClass(request, client_address, self) 
File "/usr/lib64/python2.7/SocketServer.py", line 655, in __init__ 
self.handle() 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 216, in handle rv = BaseHTTPRequestHandler.handle(self) 
File "/usr/lib64/python2.7/BaseHTTPServer.py", line 340, in handle 
self.handle_one_request() 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 251, in handle_one_request 
return self.run_wsgi() 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 193, in run_wsgi 
execute(self.server.app) 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 184, in execute 
write(data) 
File "/gui/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 152, in write 
self.send_header(key, value) 
File "/usr/lib64/python2.7/BaseHTTPServer.py", line 401, in send_header 
self.wfile.write("%s: %s\r\n" % (keyword, value)) 
IOError: [Errno 32] Broken pipe 
+0

請問您可以粘貼錯誤日誌的其餘部分嗎? – dvnguyen

+0

完成!謝謝!!! – user800133

回答

1

作爲臨時解決方案,我在重定向之前添加了500毫秒的延遲。看起來好像有一個更好的方法,但現在這個工作。

0

我看到這個錯誤太Ubuntu的泊塢容器上Kubernetes在Ubuntu VM:

Error on request: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 270, in run_wsgi 
    execute(self.server.app) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 261, in execute 
    write(data) 
    File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 227, in write 
    self.send_header(key, value) 
    File "/usr/lib/python2.7/BaseHTTPServer.py", line 412, in send_header 
    self.wfile.write("%s: %s\r\n" % (keyword, value)) 
IOError: [Errno 32] Broken pipe 

我創建了一個全新的Ubuntu xenial VM跑在Kubernetes Ubuntu的碼頭工人容器相同的代碼,而這個錯誤是不是看到和Python Flask按預期工作。我認爲這是我的主機(Ubuntu VM)的問題。