我使用 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 )会导致正确的文件,没有任何错误。
8条答案
按热度按时间5cnsuln71#
我也遇到了同样的问题,在2个小时寻找导致404 Not Found错误的原因后,我发现我最近在玩PHP的
header()
,忘记删除以下代码行:删除它之后,我的 AJAX 功能又恢复正常了。
crcmnpdw2#
这似乎是
FormData
对象的问题。一旦我改变了我的方法,使用.serialize()
代替,页面工作得很好。vxqlmq5t3#
对我来说,这是我使用了一个输入字段与
name="name"
这使得调用的页面返回一个404。奇怪的东西,希望这有助于有人。slhcrj9b4#
尝试在文件名前添加/:url:'/ValidateApplication.php',
尝试将请求类型从POST更改为GET,看看是否有效。
尝试注解掉部分代码:
尝试其他浏览器。
nnt7mjpx5#
请验证您是否在表单提交中正确提供了name="”属性,验证输入的name属性中的所有bean属性
jm2pwxwz6#
请检查您的PHP页面名称!
不要使用
page-ajax.php
,而是使用page_ajax.php
。x0fgdtte7#
根据我的情况,我一定会重新检查你的url地址。
dxxyhpgq8#
我也遇到了同样的问题。很可能你已经重命名了文件ValidateApplication.php或者忘记重命名了。