我试图通过axios替换fetch. 该应用程序的结构如下。在之前编写的站点laravel 5.1中,添加了使用reactjs.
React 页面需要有关当前登录用户的信息。通过AJAX我转向 Laravel 后端获取信息。
后端方法
public function getUserInfo()
{
return Auth::user()->toJson();
}
如果我直接在浏览器中访问或在 React 页面上通过
axios- 我正确地获取了有关用户的信息axios.get('/mlm-get-user-info') .then(response => { console.log(response.data); });如果我通过申请
fetchfetch('/mlm-get-user-info') .then((response) => { return response.text(); }) .then((user) => { console.log(user); });我得到一个错误
在 null 上调用成员函数 toJson()
为什么会这样?
结果证明该解决方案相当简单。
在
laravel中,如果用户被授权,则对服务器的每个请求都伴随着 cookie,其中传输授权期间获得的会话标识符。此标识符确定特定请求的授权用户。
默认情况下
fetch,请求中不传递任何 cookie。要激活此功能,您需要传递一个credentials值为 的参数same-origin。正确要求: