Я знаю, что эти вопросы задавались ранее, но ни один из ответов не работал для меня.
Я работаю с 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