使用JWT令牌从角度访问Symfony REST API时,我遇到了CORS问题。
IIS服务器已配置为使用域名和IP地址访问应用程序。前端代码与Symfony位于同一目录中。
前端使用域名调用API。使用JWT令牌从IP地址访问应用程序会产生CORS问题,因为API指向域名。
我在内核侦听器中设置了以下选项的响应头。
我正在使用lexik / jwt-authentication-bundle来生成令牌
$responseHeaders->set('Access-Control-Allow-Headers', 'origin, content-type, accept,authorization');
$responseHeaders->set('Access-Control-Allow-Origin', '*');
$responseHeaders->set('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, PATCH, OPTIONS');
$responseHeaders->set('Access-Control-Allow-Credentials', true);
我还使用以下选项设置了Nelmio CORS捆绑包
enter code hernelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
'^/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600e
响应标题:
允许
选项,追踪,获取,头,后
内容长度
0
日期
2017年11月13日星期一16:03:22 GMT
公共
选项,追踪,获取,头,后
服务器
微软IIS / 10.0
X-火狐,SPDY
H2
提前致谢!
答案 0 :(得分:2)
我的web.config(Symfony 4):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="origin, content-type, accept,authorization" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST, GET, PUT, DELETE, PATCH, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>