Ошибка: Сломанная труба

Я работаю над проектом Django. Все прошло хорошо, пока я не создал запрос Ajax для отправки значений со страницы html на бэкэнд (views.py).

Когда я отправляю данные с помощью Ajax, я могу просматривать значения, передаваемые view.py, и даже достигает метода render_to_response и отображает мою страницу, но выдает ошибку разбитого трубопровода в терминале. Я не вижу каких-либо сбоев в программе, но я хотел знать, есть ли способ предотвратить эту ошибку. Я проверил другие ответы. Но пока не повезло.

Когда я попытаюсь нажать отправить снова на обновленной странице, я получаю это сообщение:

Страница, на которую вы ищете информацию, которую вы ввели. Возврат на эту страницу может привести к повторению любого действия, которое вы приняли. Вы хотите продолжить? [Отправить] [Отменить] `

Вот свалка:

Traceback (most recent call last): ---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 34812) ---------------------------------------- File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 284, in run self.finish_response() File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 324, in finish_response self.write(data) File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 403, in write self.send_headers() File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 467, in send_headers self.send_preamble() File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 385, in send_preamble 'Date: %s\r\n' % http_date() 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 Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 570, in __init__ BaseHTTPRequestHandler.__init__(self, *args, **kwargs) File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__ self.finish() File "/usr/lib/python2.7/SocketServer.py", line 693, in finish self.wfile.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 

Обновление: вот код, который я отправляю:

  $( document ).ready(function() { $.csrftoken(); $("#submitdata").click(function(){ //values = [tmode, fmode, t_cool, t_heat, hold]; values = { "tmode": tmode, "fmode": fmode, "t_cool": t_cool, "t_heat": t_heat, "hold": hold }; var jsonText = JSON.stringify(values); $.ajax({ url: "/submitdata/", type: 'POST', data: jsonText, dataType: 'json', success:function(data){ console.log(data.success); }, complete:function(){ console.log('complete'); }, error:function (xhr, textStatus, thrownError){ console.log(thrownError); console.log(obj); } }); }); }); 

И вот мои view.py:

 @login_required def submitvalues(request): #context = RequestContext(request) if request.POST: jsonvalues = json.loads(request.raw_post_data) print jsonvalues return HttpResponse(json.dumps(dict(status='updated')), mimetype="application/json") 

Я все еще сталкиваюсь с той же проблемой. Может кто-то помочь мне с этим?

Редактировать 28.08.2014: Я только что выяснил причину неисправной трубы. Это произошло потому, что я не отправлял ответ от Python и просто ожидал, что страница будет обновляться автоматически. Я новичок во всем этом, и мне потребовалось некоторое время, чтобы понять, почему это произошло.

2 Solutions collect form web for “Ошибка: Сломанная труба”

Вы не отправили какой-либо код, но это, вероятно, потому, что вы вызвали запрос Ajax на кнопку submit, но не препятствовали действию по умолчанию. Таким образом, запрос Ajax выполняется, но к моменту поступления данных браузер уже запросил следующую страницу, поэтому его не получилось.

Я решил эту проблему, добавив следующее:

 self.send_header("Access-Control-Allow-Origin", "*") 

Потому что я обнаружил ошибку при отправке страницы с сообщением:

 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is there 

Затем я получил это решение и решил проблему выше.

  • Как я могу работать с GLib.Array в Python?
  • Как нарисовать перекрестье и заложить положение мыши в pyqtgraph?
  • openpyxl выделяет несколько ячеек, когда один из них выбирается после закрытия файла
  • Замена оболочки трубопровода
  • Как очистить \ xc2 \ xa0 \ xc2 \ xa0 ... в текстовых данных
  • Как обрабатывать IncompleteRead: в python
  • Как проверить, какая деталь сложного объекта не может быть маринована
  • Как использовать `GridSpec ()` с `subplots ()`
  •  
    Interesting Posts for Van-Lav

    Как разбить столбец DataFrame на python

    Панды: округление индекса времени до ближайшей 5-й минуты

    как извлечь правила принятия решения из дерева принятия решений scikit-learn?

    Как решить «Ошибка приложения» в Heroku (Python)

    Сконфигурация: создание поздних целей

    Как использовать функцию lesssq из scipy.optimize в python, чтобы поместить как прямую линию, так и квадратичную линию в наборы данных x и y

    сумма вложенного списка в Python

    Python создает / импортирует пользовательский модуль в том же каталоге

    Как определить, запущен ли скрипт python в качестве фонового процесса

    Создание pdf-латекса с помощью скрипта python

    как получить все ключи и значения во вложенном dict-of-dicts и dicts?

    вычисление следующего дня из стробированной строки «YYYYMMDD»

    Использование словаря Python в качестве ключа (не вложенного)

    Django: запись вида для удаления элемента с флажками

    Объект 'module' не имеет атрибута 'OSMGeoAdmin'

    Python - лучший язык программирования в мире.