React-Native извлекает сообщение в люмен / laravel возвращает MethodNotAllowed (405), но почтальон работает - PullRequest
0 голосов
/ 05 февраля 2020

Я знаю, что эти вопросы задавались ранее, но ни один из ответов не работал для меня.

Я работаю с React Native и отправляю API в Lumen-Backend, и я понял, что весь POST-запрос к LUMEN возвращает 405 ошибка. Протестировал его с почтальоном, и он работает очень хорошо. Пробовал использовать fetch и ax ios, но все они возвращают 405 ошибок. Поиск кодов сильфон

Почтальон запрашивает рабочее изображение

FETCH CALL

    const BASE_URL = 'http://192.168.43.232/2019/betbank_api/public/api/';
    const url = '/app/auth/login/'
    const endPoint = BASE_URL.concat(url);

    const data ={ email: 'okeke', password:'passs' }

        async function postData(url = '', data = {}) {

          const response = await fetch(url, {
            method: 'POST', 
            cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
            headers: {
              'Content-Type': 'application/text'
            },

            body: JSON.stringify(data) // body data type must match "Content-Type" header
          });
          return await response.text(); // parses JSON response into native JavaScript objects
        }

        postData(endPoint, { email: 'okeke', password:'passs' })
          .then((data) => {
            console.log(data); // JSON data parsed by `response.json()` call
            alert(data)
          });

Также пытался реализовать то же самое с помощью AXIOS но ir возвращает ту же ошибку 405. Найти топор ios код ниже

  axios.post(endPoint, data, {
    headers: { 
      'Accept': 'application/json;charset=utf-8',
      'Content-Type': 'application/json;charset=utf-8',
    }
  }).then( (response)=>{

    console.log(JSON.stringify(response.data))
    alert(JSON.stringify(response.data))
  }

  ).catch( (error)=>{
    console.log(error)
    alert(error)
  })

Найти Путь люмена - API ниже

        $router->group(['prefix' => 'api'], function () use ($router) {

                $router->post('/app/auth/login', 'AppUserController@postLogin');


            });

Найти метод postLogin Bellow

        class AppUserController extends Controller
        {

            protected $jwt;

            public function __construct(JWTAuth $jwt)
            {
                $this->jwt = $jwt;
            }

            public function postLogin(Request $request)
                {

                    $email = $request->input('email');



                    $this->validate($request, [
                        'email'    => 'required|email|max:255',
                        'password' => 'required',
                    ]);

                    try {

                        if (! $token = $this->jwt->attempt($request->only('email', 'password'))) {

                            return response()->json(['status'=>'error','data'=> 'Invalid username and passowrd'], 401);
                        }

                    } catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {

                        return response()->json(['token_expired'], 500);

                    } catch (\Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {

                        return response()->json(['token_invalid'], 500);

                    } catch (\Tymon\JWTAuth\Exceptions\JWTException $e) {

                        return response()->json(['token_absent' => $e->getMessage()], 500);

                    }

                    return response()->json(compact('token'));
                }


        }

Все кажется в порядке, но каким-то образом ни выборка, ни топор ios не будут работать, когда я использую метод POST. Но если я изменю его на метод GET, ошибка прекратится, но теперь проблема заключается в том, как получить данные, опубликованные из приложения.

ВОПРОС Почему все Отправить запрос из моего приложения (React Native) возвращать 405 из Lumen / Laravel

...