Http ошибка 500 с запросом POST от JavaScript - PullRequest
0 голосов
/ 29 мая 2019

Я создал веб-сервер с использованием библиотек python и cherrypy. Запросы GET и POST работают нормально, если я пытаюсь сделать их, используя python или Postman. К сожалению, у меня 500 (Внутренняя ошибка сервера), когда я пытаюсь сделать запрос POST, используя javascript или jquery. Я пробовал все запросы POST, которые я нашел в stackoverflow.

Это основной мой веб-сервер.

python ws.py

if __name__== '__main__' :
    conf = {
            '/': {
            'request.dispatch' : cherrypy.dispatch.MethodDispatcher(),
            'tools.response_headers.on': True,
            'tools.response_headers.headers': [('Access-Control-Allow-Origin', '*'), 
                                               ("Access-Control-Allow-Methods", "GET, POST"),
                                               ("Access-Control-Allow-Headers", "Content-Type, Accept"),
                                               ("Access-Control-Max-Age", "1728000"),
                                               ('Content-Type: application/json; charset=UTF8'),
                                               ],

            }
    }
    cherrypy.tree.mount(ImageRetrievalWS(),'/',conf)
    cherrypy.config.update({'server.socket_host' : '127.0.0.1'})
    cherrypy.config.update({'server.socket_port' : 8001})
    cherrypy.engine.start()
    cherrypy.engine.block()

javascript-скрипт, в котором я пробовал все виды почтовых запросов:

HTML script 

      var urll = "http://127.0.0.1:8001/selectedfiles"
      var http = new XMLHttpRequest();
      var params = "hello";

      $.ajax(
      { url : urll,
        data : JSON.stringify({"selectedfiles": "hello"}), type : 'POST', dataType : 'json',
        success : function(wsQuery) {alert("ok"); }
      });

      $.ajax(urll, {
        type: "POST",
        dataType: 'json',
        data: JSON.stringify({"selectedfiles": "hello"}),
        success: function(result) {
            console.log(result);}
      });


      http.open('POST', urll, true);
      http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      http.onreadystatechange = function() {
        if(http.readyState == 4 && http.status == 200) {
            alert(http.responseText);
        }
      }
      http.send(params);

      $.post(urll, data = JSON.stringify({ selectedfiles: 'hello' }), function (result) {
            alert('OK');
          }, 'json');
    </script>

Итак, я полагаю, что проблема в ws.py, но я не понимаю, что мне нужно добавить, чтобы это работало. С другой стороны, запрос работает, если я делаю это из другого скрипта Python или с помощью Postman. Спасибо.

...