我有调用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有关吗?如果是这样,我该如何解决?如果没有,还有什么呢?
答案 0 :(得分:0)
原来cgi-bin缺少一些必要的项目。