在过去的几天里,A一直在努力地使用CORS,特别是在非CORS设置中的飞行前请求。 我正在从SPA应用通过axios(domain.com:80)向REST 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
请求方法: OPTIONS
状态码:200 OK
远程地址: 185.200.153.100:80
推荐人政策:no-referrer-when-downgrade
响应标题
访问控制允许标题:授权
访问控制允许方法:GET
访问控制允许来源:http:/ domain
访问控制最大年龄:25200
缓存控制:无缓存,私有
连接:关闭
内容长度:0
内容类型:text / html; charset = UTF-8
日期:2019年4月27日,星期六,格林尼治标准时间
伺服器:Apache
请求标头
显示了临时标题
访问控制请求标头:授权
访问控制请求方法:GET
来源:http:/ domain
引荐来源:http:/ domain / company-name / perfis
用户代理: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
响应标题
接受范围:字节
访问控制允许来源:http:/ domain
Access-Control-Expose-Header:*
年龄:0
缓存控制:无缓存,私有
连接:保持活动状态
内容类型:application / json
日期:2019年4月27日,星期六18:28:41 GMT
伺服器:Apache
传输编码:分块
变化:来源,授权
通过:1.1 varnish-v4
X-RateLimit-Limit:60
X-RateLimit-剩余:58
X-清漆:46418125
请求标头
接受:application / json,text / plain, /
授权:不记名{token}
来源:http:/ domain
引荐来源:http:/ domain / company-name / perfis
用户代理: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>
如果需要其他数据,请随时询问。
答案 0 :(得分:0)
也许我缺少明显的东西。
是的。
在SPA中,我确实在获取 int CheckingDublicate = 0, count = 1;
for(int i = 1; i <= randArray.length; i++){
if(count<=10{
if(CheckingDublicate!=randArray[randArray.length-i])
{
//Ignoring if dublicate
System.out.print(randArray[randArray.length-i]+" ");
CheckingDublicate = randArray[randArray.length-i];
count++;
}
}
else
break;
}
是严格的domain/api
。使原始URL与请求URL匹配,如@sideshowbarker
就检查URL而言,“域”部分必须完全相同。因此,例如“ api.domain.com”和“ www.domain.com”是两个不同的来源。您从“网络”标签中复制的标头显示“来源:http:/域”和“ http:/域/公司名称/ api / perfil / 3”。因此,我要告诉您的是,实际的“ http:/ domain / company-name / api / perfil / 3” URL的实际来源与“ Origin:http:/ domain”的实际来源并不完全匹配。 “域”部分不完全相同,或者它们都不都是“ http”或都不是“ https”,或者您遗漏了一些端口号。