Laravel react本机应用程序返回404错误
我正在react native with laravel backend中创建应用程序。因此,我想从laravel服务器获取api,所以我使用该命令运行laravelLaravel react本机应用程序返回404错误,laravel,react-native,Laravel,React Native,我正在react native with laravel backend中创建应用程序。因此,我想从laravel服务器获取api,所以我使用该命令运行laravel php artisan serve --host=some-domain.test --port=anyPort 我就是这样创建api的 Route::get('users','PostController@get_users'); function get_users() { return Respon
php artisan serve --host=some-domain.test --port=anyPort
我就是这样创建api的
Route::get('users','PostController@get_users');
function get_users()
{
return Response()->json(User::get(),200);
}
在react native中,我以这种方式调用该api
constructor()
{
super();
this.state={
data :[]
}
}
componentDidMount()
{
this.callApi();
}
async callApi()
{
let data=await fetch(' http://192.168.1.1:8081/api/users') //same as where laravel server is running
let adata= await data.text();
this.setState({data:adata})
console.warn(data)
}
它返回404错误:开发服务器返回响应错误代码:404
但当我停止laravel服务器并刷新我的应用程序,然后启动laravel服务器时,它会返回该错误
Possible unhandled promise rejection(id:0):
我现在该怎么办?你没有正确处理你的承诺,因此你会犯错误。Fetch的使用方式如下:
fetch('http://example.com/movies.json')
.then(response => response.json())
.then(data => console.log(data));
您可以在官方文件中了解更多信息:
如果要设置状态,必须在第二个.then()调用中进行设置
另外,请记住添加一个
.catch(err=>console.log(err))
来过滤错误。我认为您需要处理cors请求
你可以安装这个软件包
https://github.com/fruitcake/laravel-cors
要生成配置文件,请运行以下命令
php artisan vendor:publish --tag="cors"
然后在config/cors.php中更新
<?php
return [
/*
|--------------------------------------------------------------------------
| Cross-Origin Resource Sharing (CORS) Configuration
|--------------------------------------------------------------------------
|
| Here you may configure your settings for cross-origin resource sharing
| or "CORS". This determines what cross-origin operations may execute
| in web browsers. You are free to adjust these settings as needed.
|
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
*/
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
];
protected $middleware = [
\Fruitcake\Cors\HandleCors::class,
// ...
];