目前我使用这个函数从chrome扩展发送JSON。这是javascript发送数据的客户端代码。在
function callPython(){
var url = 'http://AWS_IPNUMBER/';
var data = {'bob':'foo','paul':'dog'};
$.ajax({
url: url,
type: 'POST',
contentType:'application/json',
data: JSON.stringify(data),
dataType:'json',
success: function(data){
var jsonObj = $.parseJSON(data);
alert(jsonObj.encPassword);
},
failure: function(errorMsg) {
alert(errorMsg);
}
});
}
以下是Python的服务器代码:
^{pr2}$问题是,尽管它正在侦听,data
在data = ns.recv(8192)
处是空的。则data = json.loads(data)
不起作用,因为data
为空。为什么会这样?我想这可能是我在AWS上的安全组有问题,但是如果我转到http://AWS_IPNUMBER/
,我会在运行python脚本时从浏览器中获取头。在
$.ajax函数将放入的数据是一个完整的HTTP请求,
json.loads()
无法理解。在本例中,您需要实例化一个HTTP服务器,该服务器将处理HTTP请求,然后使用json.loads()
处理HTTP负载。在使用tornado或{a2}这样的框架可能会更幸运。在
我这么说是因为在你的代码中,你试图用json.loads. HTTP不是那么简单。在到达主体之前,您需要处理请求和报头,这可以分散到多个包中。既然可以从一个成熟的项目中设置一个符合标准的服务器,那为什么还要重新设计呢。在
相关问题 更多 >
编程相关推荐