2012-02-21 127 views
3

我使用$ .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'); 
    } 

}); 

在serverside函數中,如何訪問數據?

總得有人給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,但找不到相同的內容)。

感謝,

維尼特

+0

Python 2.6有一個'json'模塊,可以用來解析JSON(請參閱[如何使用Python解碼JSON](http://stackoverflow.com/q/2331943/218196 ))。至於web2py如何處理請求,請查看其文檔。 – 2012-02-21 11:05:56

+0

我導入了json模塊並嘗試解析數據。沒有JSON錯誤。但是由於數據分配不正確而引發的錯誤(在params.students中,params沒有定義)。 – Vineet 2012-02-21 11:10:01

+1

這就是爲什麼我說你必須閱讀關於web2py,他們如何使請求數據可用。你不能複製和粘貼不同語言的代碼。顯然,web2py不提供'params'變量。我很確定這是由一些教程所覆蓋。 – 2012-02-21 11:12:48

回答

4

你困惑。

「如何訪問服務器端的數據」與jquery無關,並且與您的服務器端Web框架無關。

您需要從請求對象中提取數據;在這裏的web2py文檔在這裏:http://web2py.com/book/default/chapter/04#request

+0

太棒了! request.vars.students工作。我不知道。非常感謝你 !!我已經接受了這個答案:-) – Vineet 2012-02-21 11:25:58

+0

@Vineet:沒問題!我總是樂於幫助人們學習如何解決自己的問題。 – Marcin 2012-02-21 11:39:59

相關問題