使用python的JSONP web服务

2024-05-15 13:12:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个AJAX函数,它从我的JSON Python web服务请求数据。我的AJAX请求如下:

  url = "http://localhost:8001/blah"
  $.ajax({
      url: url,
      type: 'get',
      dataType: 'jsonp',
      success: function(data) {
          console.log('hi')
      }
  });

目前,我的python web服务有一个函数处理对'/blah'的请求,该函数具有以下返回语句:

return json.dumps({'a':1, 'b':2 })

我的AJAX函数无法成功地从Python Webservice中检索响应,但是Firebug中没有任何错误。我的webservice或javascript做错了什么?


Tags: 数据函数webjsonlocalhosthttpurlget
3条回答

当您使用Jquery的JSONP数据类型时,会发生什么情况:回调函数名作为URL的一部分作为GET param发送,所以您实际上是在查询“http://localhost:8001/blah”之类的内容?callback=json125348274839英寸。

web服务器的响应应如下所示:

    return "%s({'a':1, 'b':2 })" % _GET_PARAMS('callback')

所以您的web服务器将返回类似“json125348274839({'a':1,'b':2})”的内容

希望能有帮助!

扎克明白了。我的javascript是正确的。我将python返回语句更改为:

callback = request.args.get('callback')
return '{0}({1})'.format(callback, {'a':1, 'b':2})

在Python web服务中启用(或添加)日志记录。检查web服务器日志。。。你收到javascript客户端的请求了吗?您的web服务器是否记录它正在返回响应?

可能这取决于您正在使用的框架。它是否和从处理函数返回字符串一样简单?也许处理程序应该返回一个字符串列表,因为它没有得到一个列表,所以它没有向客户端返回任何内容。在您的web服务器日志中查找错误。

相关问题 更多 >