在Cherrypy上接收AJAX数据:来自Javascript发布请求的400错误请求

时间:2019-07-08 19:14:20

标签: javascript jquery ajax request cherrypy

我是Web开发的新手。我目前正在尝试从我的javascript网站向我单独托管的python代码(使用cherrypy)发出发布请求,并且在我的Web浏览器的控制台中收到了“ 400错误请求”。

我认为问题可能出在我从代码中显示的链接中获取的cherrypy方法,或者是JavaScript代码中的“数据”。 Cherrypy适用于我的Python代码中的其他所有内容(其他方法均不涉及从javascript接收数据,而是从python接收数据)。在卡住一段时间后,我终于创建了一个stackoverflow帐户。浏览器控制台中给出的确切错误是:“发布[url] 400(错误请求)”

任何帮助将不胜感激。

// From the Website (Post Request): 
    $.ajax({
        url:'relevanturl',
        type:"POST",
        // id, title, start_time, and end_time are strings, and userlist is an array of strings 
        data:{id:id, title:title, start_time:start_time, end_time:end_time, userlist:userlist},
        success:function()    {
        },                 
        error:function(jqXHR,textStatus,errorThrown
        {alert('Exception:'+errorThrown);}
    });
# The specific cherrypy method not working (I made it with help from
# this link that shows how to handle AJAX requests: 
# https://stackoverflow.com/questions/3743769/how-to-receive-json-in-a-post-request-in-cherrypy

    @cherrypy.expose
    def add_meeting(self, data=None):
        cl = cherrypy.request.headers['Content-Length']
        rawbody = cherrypy.request.body.read(int(cl))
        body = simplejson.loads(rawbody)

        # For now, I'm just trying to receive the data from the website.
        print(body)

1 个答案:

答案 0 :(得分:1)

注释链接中的信息解决了该问题。 How to receive JSON in a POST request in CherryPy?

解决方案是将数据转换为JSON,并遵循JSON必需的$ .ajax语法。要使用CherryPy接收数据,必须将@ cherrypy.tools.json_in()与通常的“暴露”以及来自链接的所有其他相关Python代码一起调用。

谢谢!