【发布时间】:2017-08-01 00:15:07
【问题描述】:
我正在使用以下 PHP 代码来响应 JavaScript fetch() 请求。
$json = json_encode(array(
'status' => 200,
'resources' => $dataObj
));
http_response_code(200);
header('Content-Type: application/json');
echo $json;
exit;
回到我的 JavaScript 代码,得到响应后,我可以执行以下操作:
console.log(response.status);
console.log(response.resources);
console.log(JSON.stringify(response.resources));
第一行有效并显示值200。其他行显示undefined。
现在,如果我在代码前添加 response.json(),所有三个控制台行都会正确显示。
let resp = await response.json();
console.log(resp.status);
console.log(resp.resources);
console.log(JSON.stringify(resp.resources));
我的问题是:为什么在第一个例子中我可以正确看到 200 的状态,但我需要使用 json() 函数才能看到数据对象?
【问题讨论】:
-
您将所有 http 请求返回的
status代码与您手动添加到 json 响应中的status属性混合在一起。 -
@Jamiec 哦,不,你是对的。这正是我正在做的。谢谢!
标签: javascript response