A在过去几天里一直在使用CORS,特别是非CORS设置中的预检请求。我正在通过axios(domain.com:80)向SPA应用程序发送请求到其他API(domain.com:80/api)并将其归类为CORS请求。在本地,使用相同的设置,请求很好,不会触发预检。
在我的研究中,同一原产地要求必须具备:
我认为我的生产环境检查了上述所有内容,但事情恰恰相反。
我的环境托管在共享主机提供程序中,具体如下:
SPA(Vue) - http:/ domain:80 / company-name / API(Laravel) - http:/ domain:80 / company-name / api
我已经尝试过了:
解决这个问题将使我的应用程序快100%,这对我来说是一件大事。但它根本没有意义。也许我错过了一些明显的东西。
也许可能是我的共享托管服务提供商正在做的一些代理相关的事情。但即便比我不知道如何检查。
一般 请求网址:http:/ domain / company-name / api / perfil / 3 请求方法:选项 状态代码:200 OK 远程地址:185.200.153.100:80 推荐人政策:no-referrer-when-downgrade
响应标题 Access-Control-Allow-Headers:AUTHORIZATION 访问控制允许方法:GET Access-Control-Allow-Origin:http:/ domain Access-Control-Max-Age:25200 缓存控制:无缓存,私有 连接:关闭 内容长度:0 内容类型:text / html;字符集= UTF-8 日期:星期六,2019年4月27日18:28:40 GMT 服务器:Apache
请求标题 显示临时标题 访问控制请求标头:授权 访问控制请求方法:GET 来源:http:/ domain 推荐人:http:/ domain / company-name / perfis User-Agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,类似Gecko)Chrome / 73.0.3683.103 Safari / 537.36
一般 请求网址:http:/ domain / company-name / api / perfil / 3 请求方法:GET 状态代码:200 OK 远程地址:185.200.153.100:80 推荐人政策:no-referrer-when-downgrade
响应标题 Accept-Ranges:字节 Access-Control-Allow-Origin:http:/ domain 访问控制 - 暴露 - 标题:* 年龄:0 缓存控制:无缓存,私有 连接:保持活力 Content-Type:application / json 日期:星期六,2019年4月27日18:28:41 GMT 服务器:Apache 转移编码:分块 变化:起源,授权 通过:1.1 varnish-v4 X-RateLimit-Limit:60 X-RateLimit-Remaining:58 X-Varnish:46418125
请求标题 接受:application / json,text / plain,/ 授权:承载{token} 来源:http:/ domain 推荐人:http:/ domain / company-name / perfis User-Agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36 (KHTML,与Gecko一样)Chrome / 73.0.3683.103 Safari / 537.36
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(api)($|/) - [L]
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|woff2)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
如果需要任何其他数据,请随时询问。
也许我错过了一些明显的东西。
是的。
在SPA中,当qazxsw poi确实是正确的时候,我拿到了qazxsw poi。使原始URL与请求URL匹配,如@sideshowbarker所述
就检查URL而言,“域”部分必须完全相同。例如,'api.domain.com'和'www.domain.com'是两个不同的起源。您从“网络”选项卡复制的标题显示“Origin:http:/ domain”和“http:/ domain / company-name / api / perfil / 3”。所以我告诉你的是,真正的'http:/ domain / company-name / api / perfil / 3'URL实际上是什么的起源并不完全匹配'Origin:http:/ domain'实际上是什么。 “域名”部分不完全相同,或者它们不是“http”或两者都是“https”,或者您省略了一些端口号。