我的网络服务器是在 Nginx 上配置的。在主机 srv.local 我有 Symfony3。配置:
配置.yml:
# NelmioCors Configuration
nelmio_cors:
paths:
'^/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
路由.yml:
login_check:
path: /login_check
methods: [POST]
安全.yml:
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 }
在主机 client.local 我有 vue.js 和方法返回响应:
return axios({
method: 'post',
url: 'http://srv.local/login_check',
headers: {
'content-type': 'multipart/form-data'
},
data: {
_username: 'admin',
_password: 'admin'
},
responseType: 'json'
})
运行此 vue.js 方法后,我收到错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我使用了来自http://www.jakelitwicki.com/tags/headers/的解决方案,但随后我在响应消息中收到“网络错误”。我使用了 StackOverflow 的许多解决方案,但没有积极的结果。我做错了什么?我怎样才能同时使用 NelmioCore 和 Vue.js (axios)?
当我使用 curl 时,我得到了正确的 json 响应:
curl -X POST http://srv.local/login_check -d _username=admin -d _password=admin