微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajkx返回的数据不是json类型

最近在使用AJAX请求数据的时候,发现返回的数据并不是JSON类型的。这让我很困惑,因为前面几次请求都是返回JSON数据的,而这次却不是了。

ajkx返回的数据不是json类型

我的代码如下:

$.ajax({
    url: 'data.PHP',dataType: 'json',success: function(data) {
        // do something
    },error: function() {
        alert('Error!');
    }
});

通过检查开发者工具,我发现返回的数据是HTML类型的。这就是造成问题的原因。我的解决方法是在服务器端检查并修正返回的数据类型。

我的服务器端代码如下:

$data = [
    'name' => 'John Doe','age' => 28,'gender' => 'male'
];

if ($_SERVER['HTTP_ACCEPT'] == 'application/json') {
    header('Content-Type: application/json');
    echo json_encode($data);
} else {
    header('Content-Type: text/html');
    foreach ($data as $key => $value) {
        echo "

{$key}: {$value}

"; } }

通过上面的代码,服务器会根据请求头中的Accept字段来确定返回的数据类型。如果是application/json,那么就返回JSON类型的数据;否则就返回HTML类型的数据。

在实际开发中,我们需要注意请求头中的Accept字段,并根据它来返回正确的数据类型。这样可以避免由于数据类型不匹配而引发的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐