【问题标题】:$.ajax function : send json data : parse at serverside function$.ajax 函数:发送 json 数据:在服务器端函数解析
【发布时间】:2012-02-21 11:03:14
【问题描述】:

我正在使用 $.ajax 函数将 json 数据发送到服务器端函数。

var jsonObjects = [{id:1, name:"amit"}, {id:2, name:"ankit"},{id:3,name:"atin"},{id:1, name:"puneet"}];

$.ajax({
     url: "{{=URL('myControllerName')}}",
     type: "POST",
     context: document.body,
     data: {students: JSON.stringify(jsonObjects) },
     dataType: "json",
     success: function(){
         alert('ok');
  }

});

在服务端函数中,我如何访问数据?

有人给出了 grails 的代码:---

//this code is written in grails
import grails.converters.JSON;
List<JSON> students = JSON.parse(params.students) //students in request params is parsed to json objects and stored in the List
println "Student id: " + students[0].studentId    //first element of the students list is accessed as a map holding a key studentId

我想在 python web 框架中执行此操作,即。 web2py。

尝试以 params.students 和 request.students 的形式访问它,但没有成功。

访问发送的数据的正确语法是什么? (我检查了 jQuery API,但找不到相同的)。

谢谢,

维内特

【问题讨论】:

  • Python 2.6 有一个 json 模块,可用于解析 JSON(参见 How to decode JSON with Python)。至于 web2py 如何处理请求,请查看其文档。
  • 我导入了json模块并尝试解析数据。没有 JSON 错误。但是由于数据分配不正确而引发错误(在params.students中,未定义params)。
  • 这就是为什么我说您必须阅读有关 web2py 的内容,它们如何使请求数据可用。您不能只复制和粘贴其他语言的代码。显然 web2py 不提供params 变量。我很确定这已经被一些教程所涵盖。
  • 在 web2py 中,对于像 www.myshineyurl.com/1/2 这样的 url,我们将其解析为 request.args(0) 和 request.args(1) 分别给出值 1 和 2。对于内置函数,即。 ajax(),我们作为 request.vars.htmlElementName 访问它。但是没有任何从 $.ajax 函数访问数据的信息。这就是我在这里发布问题的原因。
  • 这是一个 POST 请求。是否通过 Ajax 发送都没有关系。了解如何从 POST 请求中访问数据。

标签: python ajax web2py


【解决方案1】:

你很困惑。

“如何访问服务器端的数据”与jquery无关,与你的服务器端web框架有关。

您需要从请求对象中提取数据;相关的 web2py 文档在这里:http://web2py.com/book/default/chapter/04#request

【讨论】:

  • 太棒了! request.vars.students 工作。我不知道。非常感谢 !!我已经接受了这个答案:-)
  • @Vineet:没问题!我总是乐于帮助人们学习如何解决他们自己的问题。
猜你喜欢
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 2017-05-28
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多