使用jquery-ajax请求失败,但成功使用curl

时间:2014-02-20 10:31:15

标签: javascript jquery ajax

我正在使用jQuery来发起ajax请求。 使用jQuery调用请求时,我收到“意外的输入结束”错误,并且没有来自PHP文件的响应,但是如果我将请求从Chrome控制台复制为curl并运行它,比如linux命令行,我得到了正确的回应。

这是ajax函数:

        var form = $('#edit form').first();
        $.ajax({
            url: 'upload.php?uuid=' + uuid,
            type: 'POST',
            data: form.serialize(),
            cache: false,
            success: function(data) {
                console.log(data);
            },
            error: function( jqXHR, textStatus, errorThrown ){
                console.log(jqXHR);
                console.log(textStatus);
                console.log(errorThrown);
            }

        });

我已经检查过是否可能是Chrome问题,但它似乎也会在其他浏览器中出现。

提前致谢

2 个答案:

答案 0 :(得分:0)

我认为你遗失了contentType,如果你的dataType也是json,那也是如此 试试这个

var form = $('#edit form').first();
    $.ajax({
        url: 'upload.php?uuid=' + uuid,
        type: 'POST',
        data: form.serialize(),
        cache: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function(data) {
            console.log(data);
        },
        error: function( jqXHR, textStatus, errorThrown ){
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        }

    });

答案 1 :(得分:0)

事实证明,问题出在form.serialize()上。它把它变成了一个字符串,并以某种方式没有将它作为POST请求处理。我必须使'data'成为一个对象,它获取每个表单输入的值并且它有效。