TypeError:网络请求使用获取ReactNative和Laravel响应失败

时间:2019-09-06 08:56:48

标签: php laravel react-native request postman

我正在将数据发布到Laravel,期望获得成功响应,但是它捕获到异常 TypeError:网络请求失败使用使用Laravel护照的get方法和登录发布方法都可以。

  • 在标头中添加“ Content-Type”:“ application / json”会导致网络请求登录方法失败。
  • 邮递员返回有效的错误或成功,因此完全可以按预期进行。
  • 调试显示请求已发送到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
});

我希望得到像邮递员一样的任何回应。怎么可能出问题了?

1 个答案:

答案 0 :(得分:1)

您是否在后端启用了CORS?一旦打开检查->网络,然后运行获取。显示是否有错误。