我正在使用以下PHP代码来响应JavaScript fetch()
请求。了解JavaScript响应
$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()函数中才能看到的数据对象?
因为这就是它的工作原理。 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch –
您将所有http请求返回的'status'代码与您手动添加的'status'属性混合在一起到你的json响应。 – Jamiec
@Jamiec哦不,你是对的。这正是我所做的。谢谢! – kojow7