php 404 Not Found 404 Not Found

ukxgm1gy  于 2023-04-04  发布在  PHP
关注(0)|答案(8)|浏览(152)

我使用 AJAX 将表单数据和文件传递给PHP文件进行处理。

Javascript

$("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确实存在。如果我在web浏览器中输入地址,我可以查看它,但是当我提交表单时,chrome控制台返回404。
PHP和运行JavaScript的HTML页面在同一个文件夹中,所以我很困惑为什么我总是得到404。
更新
将POST更改为GET可以消除404错误,但会返回500 Internal Server Error
更新2
将表单的action更改为=“ValidateApplication.php”并正常提交(不 AJAX )会导致正确的文件,没有任何错误。

5cnsuln7

5cnsuln71#

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

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

删除它之后,我的 AJAX 功能又恢复正常了。

crcmnpdw

crcmnpdw2#

这似乎是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);
        }
    });
}
vxqlmq5t

vxqlmq5t3#

对我来说,这是我使用了一个输入字段与name="name"这使得调用的页面返回一个404。奇怪的东西,希望这有助于有人。

slhcrj9b

slhcrj9b4#

尝试在文件名前添加/:url:'/ValidateApplication.php',
尝试将请求类型从POST更改为GET,看看是否有效。
尝试注解掉部分代码:

/*cache: false,
contentType: false,
processData: false,*/

尝试其他浏览器。

nnt7mjpx

nnt7mjpx5#

请验证您是否在表单提交中正确提供了name="”属性,验证输入的name属性中的所有bean属性

jm2pwxwz

jm2pwxwz6#

请检查您的PHP页面名称!
不要使用page-ajax.php,而是使用page_ajax.php

x0fgdtte

x0fgdtte7#

根据我的情况,我一定会重新检查你的url地址。

dxxyhpgq

dxxyhpgq8#

我也遇到了同样的问题。很可能你已经重命名了文件ValidateApplication.php或者忘记重命名了。

相关问题