Javascript 通过axios请求时,Laravel如何自动添加X-XSRF-TOKEN?
我有一个API,它使用相同的Javascript 通过axios请求时,Laravel如何自动添加X-XSRF-TOKEN?,javascript,php,laravel,laravel-5,csrf,Javascript,Php,Laravel,Laravel 5,Csrf,我有一个API,它使用相同的auth中间件。因此,当我成功登录时,我会被重定向到一个页面,该页面从同一应用程序的API获取数据。在我的app.blade.php中,我只添加了axios和一个简单的html,注意,我的头中甚至没有csrf令牌元,除了我的登录页面中的@csrf元 这是我的app.blade.php布局 <html lang="en"> <head> <meta charset="UTF-8"> </head> <body&g
auth
中间件。因此,当我成功登录时,我会被重定向到一个页面,该页面从同一应用程序的API获取数据。在我的app.blade.php
中,我只添加了axios和一个简单的html,注意,我的头中甚至没有csrf令牌
元,除了我的登录页面中的@csrf
元
这是我的app.blade.php
布局
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
@yield('content')
<script src="{{ asset('js/axios.min.js') }}"></script>
<script>
const http = axios.create({
baseURL: '/api'
});
http.interceptors.request.use((request) => {
console.log('Starting Request', request);
return request;
});
</script>
@stack('scripts')
</body>
</html>
@产量(‘含量’)
const http=axios.create({
baseURL:“/api”
});
http.interceptors.request.use((请求)=>{
日志('启动请求',请求);
返回请求;
});
@堆栈('脚本')
在我的一页中:
@extends('layouts.app')
@section('content')
<div>
<h1>Hello World</h1>
</div>
@endsection
@push('scripts')
<script>
async function test() {
const { data } = await http('/some-page');
// I'm getting a data even without passing a csrf token?
console.log(data);
}
test();
</script>
@endpush
@extends('layouts.app'))
@节(“内容”)
你好,世界
@端部
@推送('脚本')
异步函数测试(){
const{data}=wait-http('/some-page');
//即使没有通过csrf令牌,我也能得到数据?
控制台日志(数据);
}
test();
@端推
即使没有传递csrf/xsrf令牌,我也能获得API数据,这很奇怪
当我检查控制台中传出请求的日志时,这就是输出
我是说,那是从哪里来的?我的模板中甚至没有csrf令牌,也没有任何东西传递给我的axios配置
我在这里遗漏了什么吗?检查:
X-XSRF-TOKEN
Laravel将当前CSRF令牌存储在XSRF-token
cookie中,即
包含在框架生成的每个响应中。你可以用
用于设置X-XSRF-TOKEN
请求头的cookie值
发送此cookie主要是为了方便,因为有些JavaScript
框架和库(如Angular和Axios)会自动放置
它在X-XSRF-TOKEN
头中的值
检查:
X-XSRF-TOKEN
Laravel将当前CSRF令牌存储在XSRF-token
cookie中,即
包含在框架生成的每个响应中。你可以用
用于设置X-XSRF-TOKEN
请求头的cookie值
发送此cookie主要是为了方便,因为有些JavaScript
框架和库(如Angular和Axios)会自动放置
它在X-XSRF-TOKEN
头中的值
看这里看这里