使用ajax将值发布到php时出现错误

时间:2014-03-14 21:18:12

标签: javascript php jquery ajax

将数据发布到php文件时出错。下面的代码

$.ajax({
        type: "POST",
        url: url,
        data: "{'konuid='" + $('#step2-id').val() + "','kategoriid='" +$('#step3-id').val() +"'}",
        success: function(data){
            $('#form-sorular').html(data);
        },
        error: function(data)
        {
            alert(data.d);
        }
    });

我检查了来自ajax的php文件中的值,值为空。这个ajax有什么问题。

1 个答案:

答案 0 :(得分:3)

您正在为data值传递JSON格式的字符串,但我猜您的服务器代码期望值,就像您发布了一个表单一样。所以不是看起来像这样的字符串:

{'konuid='step2-id-val','kategoriid='step3-id-val'}

您应该传递一个如下所示的字符串:

konuid=step2-id-val&kategoriid=step3-id-val

但是不是自己连接字符串,而是应该将data值设置为对象,然后JQuery将为您格式化字符串:

data: {
    konuid: $('#step2-id').val(),
    kategoriid: $('#step3-id').val()
},

注意:JQuery会在构建字符串时对值进行正确编码。


由于您的ajax调用显然会返回html,我建议您添加dataType设置:

dataType: 'html',

此外,错误回调的签名是:

function(jqXHR, textStatus, errorThrown)

将错误设置更改为:

error: function(jqXHR, textStatus, errorThrown) {
    alert('Error: ' + textStatus + ', ' + errorThrown);
    alert('Response: ' + jqXHR.responseText);
}