JQuery Ajax 请求收到 <!DOCTYPE html>

JQuery Ajax request recieves <!DOCTYPE html>

我正在向同一个文档发送一段日期并且一切正常,直到我想将响应值与字符串进行比较。所以这是我的 JQuery:

$.ajax({
            type: 'POST',
            dataType : 'html',
            cache: false,
            data: {serienummer: serial},
            success: function(response) {
                console.log(response);
                if ('success' == response){
                    //Do something
                } else {
                   //Do something else
                }
                },
            error: function(xhr, status, error){
                alert('error: ' + error);
            }
        });

我post把数据放到同一个页面和我数据库里的数据比较return"success"如果有比较或者return"error"如果没有。

但是如果我 console.log() 得到以下响应:

success<!DOCTYPE html>

为什么这不仅仅是 'success' 或 'error'?我该如何解决这个问题来比较响应?与数据类型有关吗?

提前致谢

那是因为你还没有 请在 ajax

中指定 url
$.ajax({
    type: "POST",
    url: "url",
    data: "data to be post",
    contentType: "application/json; charset=utf-8",
    dataType: "html",
    success: function(result){
        alert(result.d);
        console.log(result);
    }
});

您可以像这样向成功功能添加状态:

success: function( data, textStatus, jqXHR ) 

更多信息在这里:http://forum.jquery.com/topic/jquery-ajax-textstatus-documented

退出();在处理所有内容的 PHP 代码的末尾完成了工作!我希望这对某人有帮助

在那个 ajax 调用中,您可以设置 dataType : 'html' 删除它并尝试它。 您可以设置 datatype : html 这样您就可以得到这样的响应 success<!DOCTYPE html>

正在转换为答案

您正在将页面发布到自身并从您所在的页面返回 HTML。您需要添加一个出口或将 html 包装在 else

if (isSet($_POST)) { echo "success"; exit(); } ?>
<!DOCTYPE...>

returns 字符串 "success" 仅用于该调用或创建另一个 php:

$.ajax({ url="someprocess.php"