将json数据发送到服务器返回400错误请求

时间:2012-09-19 11:40:12

标签: javascript jquery json post http-post

我想将我的字符串值作为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”具有null值。 请提前帮助我。

2 个答案:

答案 0 :(得分:2)

parseJSON函数返回一个对象。

你应该做

var obj = $.parseJSON(dataString);

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

假设你真的需要像你一样构建你的字符串。只是构建你的对象而不是制作一个json字符串,解析它然后再要求jQuery再次序列化它通常更简单。

答案 1 :(得分:1)

我认为你应该传递json对象NOT jsonarray。

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");
    }
});