我在javascript中遇到问题,我想在status
中显示响应console log
成功或错误,但是我的代码无法正常工作。
我该怎么办?有人帮我吗?
我的代码
...
client.request.post(url, options)
.then(function (data) {
console.log(data);
console.log(data.response.status); //undefined
if (data.status == 200) {
console.log("success",data);
}
}).catch(err => {
console.log("Error", err)
}
控制台日志
{status: 200, headers: {…}, response: "{"status":"success","data":"User settings updated."}", attempts: 1}
{status: 200, headers: {…}, response: "{"status":"error","data":"Number of Agents cannot be exceed."}", attempts: 1}
答案 0 :(得分:0)
基于
{status: 200, headers: {…}, response: "{"status":"success","data":"User settings updated."}", attempts: 1}
您将在响应字段中获得一个包含JSON作为字符串的响应,并且您需要对其进行解析以获取真实对象:
...then(function (data) {
data.response = JSON.parse(data.response);
console.log(data);
console.log(data.response.status);
});
答案 1 :(得分:0)
您的响应数据中有错误。 应该是这样的:
{status: 200, headers: {…}, response: {"status":"success","data":"User settings updated."}, attempts: 1}
请验证键“ response”的值。
如果“ response”的值不是json对象,则使用JSON.parse(data.response)
答案 2 :(得分:0)
您的答复是:
{
"status": 200,
"headers": {},
"response": "{\"status\":\"success\",\"data\":\"User settings updated.\"}",
"attempts": 1
}
所以data.response
是一个字符串,而不是一个对象。
您可以使用:
console.log(JSON.parse(data.response).status);
代替:
console.log(data.response.status);