Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将JSON发送到我的python脚本?_Javascript_Python_Ajax_Json - Fatal编程技术网

Javascript 如何将JSON发送到我的python脚本?

Javascript 如何将JSON发送到我的python脚本?,javascript,python,ajax,json,Javascript,Python,Ajax,Json,目前,我正在使用此函数从chrome扩展发送JSON。这是javascript发送数据的客户端代码 function callPython(){ var url = 'http://AWS_IPNUMBER/'; var data = {'bob':'foo','paul':'dog'}; $.ajax({ url: url, type: 'POST', contentType:'application/json',

目前,我正在使用此函数从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.load(data)
不起作用,因为
data
是空的。为什么会这样?我认为AWS上的安全组可能有问题,但如果我转到
http://AWS_IPNUMBER/
我在运行python脚本时从浏览器中获取标题。

您可能会更幸运地使用一个好的框架,如或


我这样说是因为在代码中,您试图用json.loads解析http POST。HTTP并不是那么简单。在到达主体之前,您需要处理请求和头,这可以分布在多个数据包中。当您可以从一个成熟的项目中设置一个符合标准的服务器时,为什么要尝试重新发明轮子呢

$.ajax函数将放置的数据是一个完整的HTTP请求,
json.loads()
无法理解。在这种情况下,您需要实例化一个HTTP服务器,该服务器将处理HTTP请求,然后使用
json.loads()

处理HTTP负载,这对于如此“简单”的东西来说是必需的(可能它没有我想象的那么简单)。chrome的扩展是,用户填写表单,将数据发送给我,然后保存在数据库中(我不需要返回任何内容)。