我的JS函数中有此代码,我需要调用一个PHP文件“ valiadte-attrib-form.php”,此PHP脚本返回一个变量。
这是我的HTML页面:
<form method="post" id="form1" name="form1" action="<?php echo $editFormAction; ?>">
<script>
$(function() {
$('#form1').submit(function() {
return validateForm();
});
});
</script>
这是我的JS代码:
function validateForm() {
var form = $("#form1");
$.ajax({
context: form,
type: 'GET',
url: 'validate-attrib-form.php',
data: params,
success: function(response){
alert(response);
result=response;
return result;
}.bind(form)
});
这是我的PHP代码:
<?php
echo "false";
但是我的问题是当我看到警报(响应)时;我看到了这样的完整HTML代码:
<!doctype html>
<html lang="es">
<head>
<meta charset="iso-8859-1"/>
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"/>
.....
.....
我的代码有什么问题?我需要该alert(response)显示错误的不是HTML代码。
谢谢你的帮助!
最佳答案
您遇到服务器错误,例如400或500系列错误...有时,取决于服务器的配置方式,这看起来像是重定向,此时您可能会看到完整的HTML页面而没有任何错误代码,例如网站的主页(如果正在执行重定向以抑制对最终用户的错误)。
我对您的$.ajax
通话的结构也有些困惑。您可能需要将其更改为以下内容:
function validateForm() {
var form = $("#form1");
$.ajax({
/* context: form, //not sure you need that */
type: 'GET',
url: 'validate-attrib-form.php',
data: form.serializeArray(), /* turn the form data into an array */
dataType: "text",
success: function(response){
alert(response);
/* do other stuff... */
}
});
}
$("#form1").on("submit", function(ev) {
ev.preventDefault();
validateForm();
};
如果尝试对端点进行AJAX调用,则无需指定表单
action
属性。