我的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属性。

10-07 19:42
查看更多