Jquery ajax返回404未找到

时间:2014-06-23 15:52:42

标签: javascript php jquery ajax

我使用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内部服务器错误

更新2

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

6 个答案:

答案 0 :(得分:3)

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);
        }
    });
}

答案 1 :(得分:3)

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

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

删除后,我的Ajax功能再次恢复正常。

答案 2 :(得分:2)

对我而言,我使用了name="name"的输入字段,使得被调用的页面返回404.奇怪的是,希望这可以帮助某人。

答案 3 :(得分:0)

尝试在文件名前添加/: url:' /ValidateApplication.php',

尝试将请求类型从POST更改为GET,看看它是否有效。

尝试评论部分代码:

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

尝试其他浏览器。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

请检查您的PHP页面名称!

请勿使用page-ajax.php,而应使用page_ajax.php