gpt4 book ai didi

php - AJAX FormData Post - 503 服务不可用

转载 作者:搜寻专家 更新时间:2023-10-31 21:57:57 25 4
gpt4 key购买 nike

我对这个问题进行了广泛的搜索但无济于事,或者我可能遗漏了这个问题。请向我传达我可以做的任何改进解释的事情。

我有一个"file"输入,它在 “更改” 上使用 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 模拟器和启用 Apache Cordova/PhoneGap 平台进行测试。

现在,当使用 localhost 时,一切都按预期工作,并且 PHP 会按预期打印 formData,但是,当我使用上传到服务器的相同 PHP 文件时(因此 Ajax 的 上的 'ip' 变量url 选项),那就是另一回事了。

一段时间后它返回错误设置,当检查 Chrome 的开发者工具 > 网络选项卡时,我可以看到请求的“状态代码”是:503 服务不可用。但是,如果我将 data 设置更改为除 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));

关于php - AJAX FormData Post - 503 服务不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com