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

Receiving AJAX Data on Cherrypy: 400 Bad Request from Javascript Post Request

我对网络开发还很陌生。我目前正在尝试从我的 javascript 网站向我单独托管的 python 代码发出 post 请求(使用 cherrypy),并且在我的控制台中收到了“400 Bad Request”网络浏览器。

我认为问题可能与我从代码中显示的 link 中获取的 cherrypy 方法有关,或者与 javascript 代码中的 "data" 有关。 Cherrypy 适用于我的 Python 代码中的所有其他内容(none 其他方法涉及从 javascript 接收数据,而不是 python)。在坚持了一段时间后,我终于创建了一个 Whosebug 帐户。浏览器控制台给出的确切错误是:"Post [url] 400 (Bad Request)"

如有任何帮助,我们将不胜感激。

// 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: 
# 

    @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)

评论中link的信息解决了问题。 How to receive JSON in a POST request in CherryPy?

解决方案是将数据转换为 JSON,并遵循 JSON 的必要 $.ajax 语法。要使用 CherryPy 接收数据,必须调用 @cherrypy.tools.json_in() 以及通常的 "expose," 和来自 link.[=11= 的所有其他相关 Python 代码]

谢谢!