2017-04-15 4 views
1

내 웹 서버는 Nginx에서 구성됩니다. 호스트 srv.local에는 Symfony3이 있습니다. 구성 :symfony3 with Nelson/Cors and vue.js with axios - 오류

config.yml :

# NelmioCors Configuration 
nelmio_cors: 
paths: 
    '^/': 
     allow_origin: ['*'] 
     allow_headers: ['*'] 
     allow_methods: ['POST', 'PUT', 'GET', 'DELETE'] 
     max_age: 3600 

routing.yml :

login_check: 
     path: /login_check 
     methods: [POST] 

security.yml :

호스트 client.local에
firewalls: 
    login: 
     pattern: ^/login 
     stateless: true 
     anonymous: true 
     form_login: 
      check_path: /login_check 
      require_previous_session: false 
      success_handler: lexik_jwt_authentication.handler.authentication_success 
      failure_handler: lexik_jwt_authentication.handler.authentication_failure 

    api: 
     pattern: ^/api 
     stateless: true 
     anonymous: false 
     provider: database 
     guard: 
      authenticators: 
       - lexik_jwt_authentication.jwt_token_authenticator 

access_control: 
    - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/api, roles: IS_AUTHENTICATED_FULLY } 

내가 가진 vue.js 및 메소드가 응답을 반환했습니다 :

이 방법을 vue.js 실행 한 후 0

내가 얻을 오류 :

No 'Access-Control-Allow-Origin' header is present on the requested resource. 

내가 http://www.jakelitwicki.com/tags/headers/에서 솔루션을 사용하지만, 그때는 응답 메시지의 "네트워크 오류"를 얻을. StackOverflow의 많은 솔루션을 사용했지만 긍정적 인 결과는 없었습니다. 내가 뭘 잘못하고 있니? NelmioCore와 Vue.js (axios)를 함께 사용하려면 어떻게해야합니까?

curl -X POST http://srv.local/login_check -d _username=admin -d _password=admin 
+0

http://www.jakelitwicki.com/tags/headers/ 솔루션을 사용해 보았을 때 NelmioCorsBundle도 비활성화 되었습니까? 제 생각에 http://www.jakelitwicki.com/tags/headers/ 솔루션은 NelmioCorsBundle을 먼저 제거하지 않는 한 예상대로 작동하지 않을 수 있습니다. 그 게시글에 그는 "제한된 성공과 여러 가지 이상한 문제로 nelmio/cors-bundle을 시도했습니다. 특히 응답이 성공적으로 되돌아 왔지만 브라우저는 응답 헤더에 404가있는 것처럼 계속 반응합니다. "* 따라서 NelmioCorsBundle을 작동 시키려면 더 이상 시간을 할 가치가 없습니다. 그의 해결책은 더 간단합니다. – sideshowbarker

+0

감사합니다. @sideshowbarker. Nelmio는 이제 주석을 달았습니다. – Maciej

답변

0

@sideshowbarker가 쓴 내가 Nelmio 댓글을 달았습니다, 내 잘못이 : 나는 컬을 사용했을 때

, 내가 올바른 JSON 응답을 얻었다. 이제 로그에서 symfony 오류가 발생했습니다 :

[2017-04-16 12:08:22] doctrine.DEBUG: SELECT t0.id AS id_1, t0.username AS username_2, t0.email AS email_3, t0.password AS password_4, t0.password_expires_at AS password_expires_at_5, t0.status AS status_6, t0.last_login_at AS last_login_at_7, t0.last_wrong_login_at AS last_wrong_login_at_8, t0.last_password_changed_at AS last_password_changed_at_9, t0.confirmation_token AS confirmation_token_10, t0.created_at AS created_at_11, t0.updated_at AS updated_at_12 FROM user t0 WHERE t0.username = ? LIMIT 1 ["NONE_PROVIDED"] [] 
[2017-04-16 12:08:22] security.INFO: Authentication request failed. {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\BadCredentialsException(code: 0): Bad credentials. at /srv/srv.local/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authentication/Provider/UserAuthenticationProvider.php:73, Symfony\\Component\\Security\\Core\\Exception\\UsernameNotFoundException(code: 0): User \"NONE_PROVIDED\" not found. at /srv/srv.local/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php:61)"} [] 

vue에서 게시 된 사용자 이름 및 암호가없는 것처럼 보입니다. '컬 (curl)'은 예상대로 계속 작동하므로 자격 증명이 맞다는 것을 알고 있습니다. 나는 vue.js를 처음 접했고, '데이터'속성 이외의 다른 액시 얼즈를 위해 뭔가를 설정해야합니까?