当我运行此脚本时,而不是在页面中插入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;
}
}
答案 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...