【发布时间】:2014-09-11 13:01:13
【问题描述】:
目前我正在使用此函数从 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 的服务器代码:
s = socket()
s.bind(('', 80))
s.listen(4)
ns, na = s.accept()
while True:
try:
data = ns.recv(8192)
except:
ns.close()
s.close()
break
data = json.loads(data)
print data
问题是虽然它正在监听,但data 在data = ns.recv(8192) 处是空的。然后data = json.loads(data) 不起作用,因为data 是空的。为什么是这样?我认为这可能是我在 AWS 上的安全组的问题,但如果我转到 http://AWS_IPNUMBER/,我会在运行 python 脚本时从浏览器获取标题。
【问题讨论】:
标签: javascript python ajax json