最近在使用AJAX请求数据的时候,发现返回的数据并不是JSON类型的。这让我很困惑,因为前面几次请求都是返回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] 举报,一经查实,本站将立刻删除。