使用HttpClient Post时凭据错误

时间:2018-01-11 20:40:27

标签: php angular symfony post httpclient

我在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

我想知道为什么我的帖子请求无效。我试图找到答案,但无济于事。

0 个答案:

没有答案