将JSON对象发送回Django中的服务器

时间:2016-07-20 23:12:04

标签: javascript html json django

我在我的基于Django的网站上放置了LinkedIn登录按钮。当用户通过LinkedIn帐户登录时,LinkedIn将返回包含用户信息的JSON对象。我想将JSON对象传递回服务器端来处理和提取信息。

请告诉我这样做的方法,并且(如果可能的话)安全地进行。

谢谢!

2 个答案:

答案 0 :(得分:1)

当您从LinkedIn获得结果时,请从浏览器中对您的Django视图进行ajax调用,如下所示:

if(YOU_GOT_THE_RESULT){

    $.ajax({
       url: your_url,
       type: "POST",
       dataType: "json",
       data: JSON_DATA_YOU_GOT_FROM_LINKEDIN,
       statusCode: {
         200: function (your_Response_Data) {
            // YOUR SERVER'S RESPONSE
            // you can act on your server's 
            // response if there will be any
            // eg. you can send back information to update UI. 
          },
          // ... handle errors if required
          404: function () {
             // what to do on 404 etc.
          }
       },
       complete: function (jqXHR, textStatus) {
          // Things to do after everything is completed
       }
    });
}

在Django视图中,回复此ajax请求。如果您的视图仅响应ajax请求,则只需检查if request.is_ajax():即可。这是post请求,因此您的观点应对帖子做出回应。您正在寻找的数据位于request.POST

祝你好运。

答案 1 :(得分:0)

如果你在python中有一个JSON(实际上是一个JSON格式的字符串),你可以使用json库将它恢复为python对象:dictlist

>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]