我在symfony 3.4中使用了lexikjwt身份验证和FOS捆绑包的REST API。当我发布帖子请求时:
curl -X POST http://127.0.0.1:8000/login_check -d _username=username -d _password=password
按预期正确生成令牌。 此外,当我在localhost:8000 / login中输入用户名和密码时,还会生成一个令牌。因此API正在运行。 但是当我尝试使用此代码使用HttpClientModule从我的角度2前端发送请求时:
let body = new HttpParams();
body.set('_username',username);
body.set('_password',password);
let headers = new HttpHeaders().append('Content-Type','application/x-www-form-urlencoded');
this.http.post('http://localhost:8000/login_check',{body},{headers : headers}).subscribe(data => {
console.log(data);
我有一个错误{{code:401,message:“Bad credentials”}}。 但是当我使用生成的令牌发出GET请求时:
let headers = new HttpHeaders().append('Authorization','Bearer Some_token');
this.http.get('http://localhost:8000/api/mydata',{headers : headers}).subscribe(data => { console.log(data)
我得到了正确的Json回复。
我的nelmio_cors配置:
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE','OPTIONS']
max_age: 3600
'^/':
origin_regex: true
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE','OPTIONS']
max_age: 3600
我想知道为什么我的帖子请求无效。我试图找到答案,但无济于事。