2011-11-02 55 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 }

相关问题