jquery ajax 返回 404 未找到

新手上路,请多包涵

我使用 Ajax 将我的表单数据和文件传递到 PHP 文件进行处理。

脚本

 $("form#applyform").submit(function(){

var data = new FormData();
jQuery.each($('#file')[0].files, function(i, file) {
    data.append('file-'+i, file);
});

$.ajax({
    url: 'ValidateApplication.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

}

ValidateApplication.php 绝对存在。如果我在网络浏览器中输入地址,我可以查看它,但是当我提交表单时,chrome 控制台返回 404。

PHP 与运行 JavaScript 的 HTML 页面位于同一文件夹中,所以我很困惑为什么我一直收到 404。

更新

将 POST 更改为 GET 摆脱了 404 错误,但返回 500 内部服务器错误

更新 2

将表单的操作更改为 =“ValidateApplication.php” 并正常提交(不使用 AJAX)会导致正确的文件,没有任何错误。

原文由 Ashwin Sekar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 362
2 个回答

这似乎是 FormData 对象的问题。一旦我将方法改为使用 .serialize() ,页面就可以正常工作了。

 $("form#applyform").submit(function(){

    var data = $("form#applyform").serialize();
    jQuery.each($('#file')[0].files, function(i, file) {
        data.append('file-'+i, file);
    });

    $.ajax({
        url: 'ValidateApplication.php',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            alert(data);
        }
    });
}

原文由 Ashwin Sekar 发布,翻译遵循 CC BY-SA 3.0 许可协议

我遇到了同样的问题,在寻找导致 404 Not Found 错误的原因 2 小时后,我发现我最近正在使用 PHP 中的 header() 并且忘记删除以下代码行:

 header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

删除后,我的Ajax功能又正常了。

原文由 CIRCLE 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题