AJAX返回“成功”函数而不是“错误”函数

时间:2018-06-13 22:23:09

标签: php ajax

当我运行此脚本时,而不是在页面中插入HTML的错误,它会返回一个类似于success函数的警告 - 但是会显示错误消息。

AJAX

$(function() {
 $('form').submit(function() {
    $page_title =  $('input[name="page_title"]').val();

    $.ajax({
        method: 'GET',
        url: 'test-script.php',
        datatype: 'jsonp',
        jsonp: 'jsonp_callback',
        data: {
            page_title: ($page_title),
        },
        success: function(result){
            alert(result);
        },

        error: function(result) {
            $('#error').html('result');
        }
    });
});

});

PHP

<?php
   if(isset($_GET)) {
      if (! empty($_GET['page_title'])) {
      $title = $_GET['page_title'];
      print $title;
   } else {
      $error = ('Name required');
      print $error;
   }
}

1 个答案:

答案 0 :(得分:2)

在你的php中添加http_response_code();告诉js,发生了错误。另外你最好发回一个json编码的错误字符串,这可以通过javascript理解。

<?php
   if(isset($_GET)) {
      if (! empty($_GET['page_title'])) {
      $title = $_GET['page_title'];
      echo $title;
   } else {
      http_response_code(400);
      $error = ["message"=>"Name required"];
      echo json_encode($error);
   }
}

请参阅list of appropriate response codes

编辑:
回复你的评论“插入HTML然后消失”_: 您需要阻止提交表单。为此,请将event.preventDefault()添加到onSubmit处理程序:

 $('form').submit(function( event ) {
     event.preventDefault();
     // rest of your code...