使用python的JSONP Web服务

Mic*_*ael 8 python json

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

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

现在,我的python Web服务有一个函数来处理具有以下return语句的'/ blah'请求:

return json.dumps({'a':1, 'b':2 })
Run Code Online (Sandbox Code Playgroud)

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

Zac*_*ach 9

使用Jquery的JSONP数据类型时会发生什么,回调函数名称作为URL的一部分作为GET参数发送,因此您实际上查询类似"http:// localhost:8001/blah?callback = json125348274839"的内容.

您的Web服务器的响应应如下所示:

    return "%s({'a':1, 'b':2 })" % _GET_PARAMS('callback')
Run Code Online (Sandbox Code Playgroud)

所以你的网络服务器将返回像"json125348274839({'a':1,'b':2})"这样的东西

希望有所帮助!


Mic*_*ael 6

扎克得到了它.我的javascript是正确的.我将我的python return语句更改为以下内容:

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