如何从ReactJS组件调用LaravelAPI路由?
我有一个用Laravel5.7开发的API,它与客户端相连,客户端是用ReactJS开发的 我有一个显示餐厅列表的页面,每个餐厅项目后面都有一个删除按钮 所以我想当我点击这个按钮时,餐厅将被删除,换句话说,组件调用LaravelAPI的路由,该路由调用控制器中的方法来销毁这个项目 这是调用delete方法的API路由如何从ReactJS组件调用LaravelAPI路由?,reactjs,laravel,api,fetch,Reactjs,Laravel,Api,Fetch,我有一个用Laravel5.7开发的API,它与客户端相连,客户端是用ReactJS开发的 我有一个显示餐厅列表的页面,每个餐厅项目后面都有一个删除按钮 所以我想当我点击这个按钮时,餐厅将被删除,换句话说,组件调用LaravelAPI的路由,该路由调用控制器中的方法来销毁这个项目 这是调用delete方法的API路由 Route::delete('/post/{id}','PostController@destroy'); 我尝试了这个尝试,但没有任何改变: class RestaurantCa
Route::delete('/post/{id}','PostController@destroy');代码>
我尝试了这个尝试,但没有任何改变:
class RestaurantCard extends Component {
constructor(props) {
super(props)
this.state = {
redirect: false,
}
}
deleteRestaurant(restaurantId) {
fetch('http://myAPI.com/version/public/post/' + restaurantId, {
method: 'DELETE',
header: {
'Accept': 'application/json',
'content-Type': 'application/json'
}
});
}
render ()
{
//...
<button onClick={() => this.deleteRestaurant(this.props.id)}>Delete</button>
}
}
类RestaurantCard扩展组件{
建造师(道具){
超级(道具)
此.state={
重定向:false,
}
}
餐厅(餐厅){
取('http://myAPI.com/version/public/post/"餐厅,{
方法:“删除”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
}
});
}
渲染()
{
//...
this.deleteRestaurant(this.props.id)}>Delete
}
}
最后,当我打开控制台时,它会显示以下错误:
删除500(内部服务器错误)
CORS策略已阻止从源“”获取“”的访问:请求的资源上不存在“访问控制允许源”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源
未捕获(承诺中)TypeError:无法获取
PS:我是ReactJs框架的初学者
在您编辑的问题提供错误后,此答案无效。您的错误是由于CORS造成的
您需要使用then
子句在成功时提供操作。否则,您也可以使用async/await
等待响应。更多信息:。在bootstrap/app.php中添加以下行:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
控制台中是否有错误?是的,控制台中显示了多个错误。但问题中的错误已添加,请检查。请尝试在标题前添加模式:'no cors',
。解决方案是什么?