$ ajax成功响应打印HTML页面

时间:2015-08-18 13:44:07

标签: javascript php jquery ajax

我的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"/>
.....
.....

我的代码有什么问题?我需要警告(响应)显示 false 而不是HTML代码。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您收到服务器错误,如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属性。