【问题标题】:JSON Post from JQuery to Python Unsuccessful从 JQuery 到 Python 的 JSON 发布不成功
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 2015-11-13
    相关资源
    最近更新 更多