我的 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";
但我的问题是当我看到 alert(response); 我看到完整的 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) 显示 false 而不是 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
属性。
关于javascript - $ajax 成功响应打印 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074186/