我是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)
答案 0 :(得分:1)
注释链接中的信息解决了该问题。 How to receive JSON in a POST request in CherryPy?
解决方案是将数据转换为JSON,并遵循JSON必需的$ .ajax语法。要使用CherryPy接收数据,必须将@ cherrypy.tools.json_in()与通常的“暴露”以及来自链接的所有其他相关Python代码一起调用。
谢谢!