一尘不染

HTTP内容类型标头和JSON

json

为了避免未知,我一直试图避免使用大多数HTTP协议的属性。

但是,我对自己说,今天我将面对恐惧,开始有目的地使用标题。我一直在尝试将json数据发送到浏览器并立即使用。例如,如果我有一个处于就绪状态4的Ajax处理程序函数,如下所示:

function ajaxHandler(response){
    alert(response.text);
}

并且我在PHP代码中设置了content-type标头:

header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));

当清楚地告诉浏览器传入数据为时,为什么不能直接从处理程序函数访问该属性application/json


阅读 480

收藏
2020-07-27

共1个答案

一尘不染

Content-Type头只是作为您的应用程序信息。浏览器不在乎它是什么。浏览器只是从AJAX调用返回数据。如果要将其解析为JSON,则需要自己完成。

标头在那里,因此您的应用程序可以检测到返回了什么数据以及应该如何处理它。您需要查看标头,application/json然后将其解析为JSON。

实际上,这就是jQuery的工作方式。如果您不告诉它如何处理结果,它将使用Content-Type来检测要如何处理结果。

2020-07-27