我具有以下提取功能
request(url, options) {
return fetch(url, _.defaultsDeep(options || {}, defaultOptions))
.then(handleErrors)
.then(response => response.json())
.catch(error => handleFetchError(error));
}
handleErrors
函数执行以下操作以检查响应是否失败...
function handleErrors(response) {
if (!response.ok) {
throw new Error(response.statusText);
}
return response;
}
我遇到的问题是API返回400
状态,而且返回具有相关错误消息的数组,但是使用throw new Error(response.statusText);
仅返回一些通用错误消息{{1} }否只能访问错误数组。
这是我期望在响应中返回的内容
Error: [object Object]
我无权访问API服务器端,因此无法在此进行任何更改。
但是有没有一种方法可以引发错误,但是我也可以访问响应中的{
"status": 400,
"error": "Bad Request",
"errors": [
{ "defaultMessage": "Please check that your name contains only letters and is longer than two characters" }
]
}
数组?
在errors
中,这是我收到的响应对象
handleErrors
当我抛出错误并尝试在{
"type": "default",
"status": 401,
"ok": false,
"statusText": "",
"headers": {
"map": {
"pragma": "no-cache",
"date": "Wed, 01 May 2019 07:44:40 GMT",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY",
"content-type": "application/json;charset=ISO-8859-1",
"cache-control": "no-cache, no-store, max-age=0, must-revalidate",
"content-length": "53",
"x-xss-protection": "1; mode=block",
"expires": "0"
}
},
"url": "http://localhost:8080/login",
"_bodyInit": {},
"_bodyBlob": {}
}
中访问它时,handleFetchError
参数只是一个空对象error
答案 0 :(得分:0)
您似乎正在尝试抛出mysql -u root -p -Nse "SHOW TABLES WHERE \`Tables_in_my_database\` != 'my_important_table'" my_database | \
while read table; do echo "SET FOREIGN_KEY_CHECKS = 0; truncate table $table;"; done | \
mysql -u root -p my_database
,但您的回复没有该属性。它有response.statusText
。