JSON从JQuery发布到Python不成功

时间:2014-01-14 20:06:11

标签: javascript jquery python ajax json

我有调用Javascript代码“map_stations.js”的HTML代码。 Map_stations.js使用master_file.csv中的lat / lon坐标在Google Map上放置几个标记并向其添加事件监听器:

function mapStations(map) {
    $.get('master_file.csv',function(data) {
        getStations(data,map)
     });
}

function getStations(data,map) {

    ... 

    var marker = new google.maps.Marker({
        position: latlng,
        map: map
    });
    google.maps.event.addListener(marker,'click',function () {
        $.getScript('plot.js', function () {})
    })

    ...
}

在plot.js中,我正在编辑使用Ajax ping Python的代码并获得某种回复:

$.ajax({
    url: '/pycode/etsurge.py',
    type'post',
    dataType:'json',
    data: JSON.stringify({'key1':'value1'}),
    success: function(response){alert('hi');
                                makePlot(response.data);}
如果我取出Ajax调用,

map_stations.js成功调用makePlot(),所以我知道这两个脚本有效。这只是我无法正确编码导致麻烦的Ajax调用。这是Python代码:

import sys
import json
import cgi

fs = cgi.FieldStorage()

result = {}
result['success'] = True

d = {}
for k in fs.keys():
    d[k] = fs.getvalue(k):

result['data'] = d

sys.stdout.write('Content-Type: application/json\n\n')
sys.stdout.write(json.dumps(result))
sys.stdout.close()

Python代码继续做其他的事情,我已经测试了它,以确保它运行没有错误。当我单独运行它时,它会打印上述命令的空输出。

我直接从here复制了上面的Ajax / Json相关代码,但是我似乎无法获得成功的Ajax调用。它可以与在$ .get中的$ .getScript中嵌套$ .ajax有关吗?如果是这样,我该如何解决?如果没有,还有什么呢?

1 个答案:

答案 0 :(得分:0)

原来cgi-bin缺少一些必要的项目。