【发布时间】:2014-01-14 20:06:11
【问题描述】:
我有调用 Javascript 代码“map_stations.js”的 HTML 代码。 Map_stations.js 使用 master_file.csv 中的纬度/经度坐标在 Google 地图上放置多个标记并向它们添加事件侦听器:
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 调用。是否与将 $.ajax 嵌套在 $.getScript 中的 $.get 中有关?如果是这样,我该如何解决?如果不是,还能是什么?
【问题讨论】:
-
您是否收到 500 错误?我会检查你的服务器日志。这类问题调试起来很麻烦,而且很可能涉及服务器配置和实际代码。
-
@BrenBarn,谢谢。我会和老板谈谈这件事,看看我们发现了什么(我显然没有查看日志的完全权限;那太容易了)。
标签: javascript jquery python ajax json