【发布时间】:2020-01-09 03:27:06
【问题描述】:
我正在向 Laravel 发布数据并期望得到成功响应,但它捕获了异常 TypeError: Network request failed。 使用 Laravel 护照的 get 方法和 login post 方法都可以正常工作。
- 将 'Content-Type': 'application/json' 添加到标头会导致登录方法的网络请求失败。
- Postman 返回有效错误或成功,因此完全按预期工作。
- 调试显示请求已发送到 Laravel,并且路由正确,因为 Visual Studio Code 调试器在返回响应的断点处停止。
public function postMessages()
{
...
return response()->json(['success' => 'success'], 200);
}
Route::middleware('auth:api')->group(function () {
Route::post('messages', 'Api\ChatController@postMessages');
});
export const fetchApi = async (endPoint, method = 'get', body = {}) => {
const accessToken = authSelectors.get().tokens.access.value;
const accessType = authSelectors.get().tokens.access.type;
let headers = {
...(accessToken &&
{
Authorization: `${accessType} ${accessToken}`
}
)
};
let response;
if (method=='get' || Object.keys(body)==0 ) {
response = await fetch(`${apiConfig.url}${endPoint}`, {
method: method,
headers: headers
});
} else {
var formData = new FormData();
Object.keys(body).forEach(type => {
formData.append(type, body[type]);
});
response = await fetch(`${apiConfig.url}${endPoint}`, {
method: method,
headers: headers,
body: formData
});
console.log('fetch response: ' + JSON.stringify(response));
}
let responseJsonData = await response.json();
return responseJsonData;
}
export const postMessages = (eidug, type, name, messages) => fetchApi('/message', 'post', {
'eidug': eidug,
'type': type,
'name': name,
'messages': messages
});
我希望像 Postman 一样毫无例外地做出回应。可能出了什么问题?
【问题讨论】:
标签: php laravel react-native request postman