【问题标题】:JSONP Response with Django [closed]使用 Django 的 JSONP 响应 [关闭]
【发布时间】:2015-02-13 17:38:43
【问题描述】:

我正在尝试做一些编码,进一步的操作,等等等等,最后得到 json 对象并返回一个 Jsonp(json 对象包装在 javascript 函数中)

我设法创建了直到 json 对象

 js_on = {"name": "xxx","job":"unemployed", "remarks": "enjoying_life"}.

我一直在做 JSONP 部分。我阅读的教程非常混乱,需要很多行代码。它真的那么复杂还是有更简单的方法来做到这一点? 我的 JSONP 代码以以下开头。

 callback = request.GET.get('callback')
 if callback:
 ......
 ......
 return(HttpResponse(...,content_type ='application/javascript'))

在服务器端,我使用 Python 和 Django 框架。 谢谢。

【问题讨论】:

  • 仅供参考,因为您正在编写 Python,{"name": "xxx", ...} 是一个字典,而不是 JSON。

标签: javascript python json django jsonp


【解决方案1】:

想象一个具有这种格式的GET 请求:

request: 'some/url?callback=myFunction'

在某种伪代码中,服务器端的 JSONP 应该是:

response = '{ "somejson": "someValue" }'

if (request.params.callback != null)
    response = request.params.callback + '(' + response + ')'

所以检索到客户端的数据将是:myFunction({ "somejson": "someValue" })

然后就这样从客户端调用它:

script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'some/url?callback=myFunction';

另见this question

更新

您澄清您正在使用 Django,所以this blogpost 可能会对您有所帮助。它解释了如何使用装饰器返回 JSONP。你也应该看看at the Django documentation about renderers

【讨论】:

  • 客户端没问题。我在将 json 对象转换为 js 函数中包装的 json 的服务器端有问题。 js_on = {"name": "xxx","job":"unused", "remarks": "enjoying_life"} to myFunction({"name":"xxx","job":"unowned","re​​marks" :"enjoying_life")) 我正在为你提到的那个伪代码部分尝试很长时间。我该如何处理呢?谢谢。
  • 只需将函数的名称附加到您要返回的字符串中。你在服务器端使用什么?
  • 我的意思是,哪种语言
  • ca_l = myFunction({js_on}); response(HttpResponse(ca_l),content_type('application/javascript')) 我尝试了一些类似上面的方法,发现调用 myfunction 不能达到目的,因为我需要在服务器端编写所需的 JSONP 格式。希望这能清除我正在寻找的东西?
  • python 和 django 框架
猜你喜欢
  • 1970-01-01
  • 2011-07-25
  • 2018-03-19
  • 2018-04-13
  • 2012-08-18
  • 2015-05-31
  • 2013-10-15
  • 1970-01-01
  • 2018-03-05
相关资源
最近更新 更多