jQuery POST请求 - 返回JSON

时间:2013-02-28 08:32:46

标签: jquery ajax json post

我想使用jQuery $.ajax来发送一些POST信息来发送一些信息(通过POST,如:page.aspx?var1=value ....)。

但我也希望jQuery处理该服务返回JSON,以便我返回一个JSON对象。

var data = {name: _name, ...};

var request = $.ajax({
    url: url,
    type: "post",
    data: data,
    //dataType: "json"
});

一旦我使用dataType: "json",它允许我接收JSON对象,我就会得到一个关于请求的解析错误!

希望你能帮我解决这个问题!

感谢先生!

4 个答案:

答案 0 :(得分:8)

从请求的网址中,您必须以JSON格式制作数据 像

echo json_encode($response);

然后你将获得成功函数的响应JSON,如下所示:

       $.ajax({
            type:"POST",
            url: "your_url",
            data:data,
            success: function (response){
                var arr = $.parseJSON(response);

            }
        });

答案 1 :(得分:0)

确保您的服务器端脚本返回编码的json。

在php中使用json_encode()

echo json_encode($response);

还在dataType : 'json'来电中设置$.ajax

答案 2 :(得分:0)

首先,post请求后面没有附加参数。您指定的格式适用于GET请求。 您可以通过以下方式实现相同的目标:

$.post(
'/yourURLL',
{'data' : dataJson},
function(data){
    handleIncomingJSON(data);
}).error(function(data, textStatus){handleUnsuccessfulSave(data, textStatus)});

答案 3 :(得分:0)

根据jQuery $.post documentation,我强烈建议您最初实施所有主要的回调方法(donefailalways),以便在您的JSON出现错误时回应然后他们不会被隐藏:

var jqxhr = $.post( 
    "example.php", 
    function(response) {var arr = JSON.parse(response);},
    'json'
)
.done(function() {console.log( "second success" );})
.fail(function() {console.log( "error" );})
.always(function() {console.log( "finished" );});