繁体   English   中英

AJAX FormData Post - 503服务不可用

[英]AJAX FormData Post - 503 Service Unavailable

我已经广泛搜索了这个问题而没有用,或者我错过了这个问题。 请转发给我,我可以做些什么来改进解释。

我有一个'文件'输入,在'更改'上使用Ajax调用Php文件,如下所示:

$(document).on('change', 'input[name="photo"]', function(){

        var file = this.files[0];
        var formData = new FormData();
        var user = localStorage.getItem("user");

        formData.append('_file', file);
        formData.append('_user', user);

        $.ajax({
            type: "POST",
            cache: false,
            url: ip + "php/insert_img.php",
            data: formData,
            contentType: false,
            processData: false,

            success: function (e) {
                // do something
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus, errorThrown);
            }
        });

    });

这应该是一个phonegap应用程序,我正在使用Chrome的Ripple Emulator和Apache Cordova / PhoneGap平台进行测试。

现在,一切正常,当使用localhost时,PHP打印formData,但是,当我使用相同的PHP文件上传到服务器(因此Ajax的url选项上的'ip'变量),这是一个不同的故事。

一段时间后它返回错误设置,当检查Chrome的开发人员工具>网络选项卡时,我可以看到请求的“状态代码”为:503服务不可用。 但是,如果我将数据设置更改为FormData()以外的任何设置,它就可以工作。

似乎问题来自服务器设置,但我不知道问题可能是什么。

在使用AJAX时,我经常遇到过这个问题所以这是我最初的想法:

“ip”定义了吗? url:ip +“php / insert_img.php”

我还发现删除一些额外的AJAX选项解决了这个问题。 修改后的代码如下:

$(document).on('change', 'input[name="photo"]', function(){

    var file = this.files[0];
    var formData = new FormData();
    var user = localStorage.getItem("user");

    formData.append('_file', file);
    formData.append('_user', user);

    $.ajax({
        type: "POST",
        url: ip + "php/insert_img.php",
        data: formData,
        success: function (e) {
            // do something
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(textStatus, errorThrown);
        }
    });

});

希望这可以帮助。

----------编辑----------

经过一番搜索之后,我相信问题就在于您要附加_file_user数据。 如果此数据的值是数组,则必须对其进行“字符串化”:

formData.append('_file', JSON.stringify(file));
formData.append('_user', JSON.stringify(user));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM