2012-09-19 195 views
0

我想发送我的字符串值到服务器作为json数据,但我得到了400个错误的请求。 这里是我如何发送数据的代码。发送json数据到服务器返回400错误请求

dataString = '{"comment":"' +dataString+ '"}'; 
     dataString = '[' + dataString + ']'; 

     $.parseJSON(dataString); 
     console.debug("After parsing : "+dataString); 

     $(form_element).clearForm(); 
     $.ajax({ 
      type : "POST", 
      url : loc, 
      cache : false, 
      data : dataString, 
      dataType: 'json', 
      contentType: "application/json", 

      success : function(data) { 
       console.debug("After success"); 
      } 

当我调试代码时,@RequestParameter“comment”有空值。 请帮助我,提前致谢。

+0

什么是可以console.debug(“解析后...”)dataString的初始值; – david99world

+0

一个简单的字符串例如(“嗨大卫”) – Shahzeb

+0

不是,但我的问题是,你真的设置它?它不仅仅是将代码视为null? – david99world

回答

1

我想你应该通过JSON对象NOT JSON数组。

var dataString = '{"comment":"test"}'; 
    //dataString = '[' + dataString + ']'; //delete this, NOT array 
var obj = $.parseJSON(dataString); 
console.log(obj); 

$.ajax({ 
    type : "POST", 
    url : url, 
    cache : false, 
    data : obj, 
    contentType:"application/json; charset=utf-8", 
    dataType:"json", 

    success : function(data) { 
     console.debug("After success"); 
    } 
}); 
2

parseJSON函数返回一个对象。

你应该做

var obj = $.parseJSON(dataString); 

$.ajax({ 
     type : "POST", 
     url : loc, 
     cache : false, 
     data : obj, 

这是假设你真的需要为你建立你的字符串。建立对象而不是生成json字符串通常会更简单,然后解析它,然后让jQuery重新序列化它。

+0

我修改了你的代码,但仍然无法正常工作。 – Shahzeb

+0

dataString中最初的内容以及服务器接收到/期望的内容?它想要一个数组吗? –

+0

它是一个简单的字符串值,但服务器接收空值 – Shahzeb

相关问题