目前我正在使用此功能从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脚本时从浏览器中获取标题。