$ .getJSON不起作用,但访问查询URL会返回数据

时间:2014-03-13 10:26:09

标签: python ajax json

#!/usr/bin/python
import json
import cgi
import os

print 'Content-Type: application/json'
print 
response={'host':cgi.escape(os.environ["REMOTE_ADDR"])}
jsondata=json.dumps(response)
print jsondata

我无法请求url抛出以下javascript / jquery代码:

jquery.getJSON("http://ourdomain/cgi-bin/serverscript.py", function(data){
    alert("----------");
 });

当我浏览相同的网址时,我正在获取数据。

2 个答案:

答案 0 :(得分:0)

首先,检查您是否实际在浏览器中加载了jQuery库。如果在控制台中输入jQuery()$()返回undefined[],则表示您未在页面中加载jQuery库。

其次,python代码中的print方法打印数据,但不会将其返回给调用函数。

要解决此问题,请将print更改为return。另外,我建议您将功能更改为以下内容:

response = {'host' : cgi.escape(os.environ["REMOTE_ADDR"])}
return json.dumps(response)

您的print语句不执行任何操作,此代码段的全部用途是获取服务器环境的地址。

事实上,这一切都可以在一行中完成:

return json.dumps( { 'host' : cgi.escape( os.environ[ "REMOTE_ADDR" ] ) } )

答案 1 :(得分:0)

使用jsonp请求解决了这个问题。