2011-11-02 23 views
0

我提出我的數組從jQuery的數據表服務器端處理,在下面的表格必需的JSON參數沒有出現在jQuery的數據表

創建陣列

var testArr = []; 
testArr.push('A') 

和下$('#form').submit功能

$.ajax({ 
    url: 'run', 
    data: testArr, 
    dataType :"json", 
    success: function(testArr){ 
     alert("Data Saved: " + testArr); 
    } 
});` 

而在彈簧控制器端,我的註釋看起來像這樣

@RequestMapping(value="/run", method=RequestMethod.POST, 
       headers="Accept=application/json") 
public String run(@RequestParam("testArr") JSON testArr) { 

當我提交的數據進行服務器端處理,它拋出我的錯誤,指出

必需的JSON參數「testArr」不存在

我無法理解什麼是我做錯了。請幫忙。

+0

使用'數據嘗試:{「testArr」:testArr}' – 2011-11-02 06:14:55

+0

@RC。 感謝您的提示。你可以發佈這個答案,以便我可以接受它 – Vivek

+0

確定它已經完成:) – 2011-11-04 06:35:33

回答

1

jSon和jSonP是成對的。你沒有發送一對。出於測試目的,請嘗試testArr.push(「{'A':'a'}」)

ps:我是新手!

+0

嗨Zequinha, 感謝您的提示,有點排序的問題。 :) – Vivek

1

[編輯:我真的沒有提供一個完整的答案,但一些這方面,所以我會離開它周圍可能是有用]

假設您確認testArr是JSON,我會說這是因爲你試圖提醒一個JSON對象作爲一個字符串,你不能這樣做。我想你可以在嘗試提醒它之前解析它,如果這是你想要做的。爲了測試目的,如果您使用console.log,您還可以更好地檢查「提醒」的內容。

爲了可維護性和可理解性,我不會爲傳入「成功」的對象使用相同的名稱,因爲它可能根本與您的原始JavaScript變量無關。我明白你提供簡化的示例代碼,但只是說'。

success: function(data) { 
    returned = $.parseJSON(data); 
    console.log("Data Saved: " + returned); 
} 

感謝另一個迴應,我仔細看了一下。 ['A']實際上並不是有效的JSON。這並不意味着它不會嘗試提交,但我不得不承認我忽視了服務器端的事情;比我更聰明的人將能夠幫助你確定它是否返回有效的JSON。 (提示:如果它只是返回你送什麼,這不是)

+0

嗨格雷格, 感謝您的幫助。提供的提示對我有幫助。 – Vivek

1

我認爲testArr需要是一個JSON對象:嘗試使用數據:{ 'testArr': testArr }

相關問題