jquery - 带有 Jquery 和 Ajax 的 Apache 服务器上的图像的 CORS 策略
问题描述
又是一天,又是一个 cors-policy 问题。这是我第一次遇到图像的 Cors Policy 问题。我已经遇到了一千次 cors 策略的问题,使用 PHP 作为服务器端,使用 Ajax 和 Jquery 作为前端,但是对于图像我从来没有遇到过问题,我真的不明白如何解决这个问题。
服务器端这是我的 .htaccess (并且非常适合休息请求):
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# CORS POLICY HERE
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers: "*"
Header set Access-Control-Allow-Methods: "*"
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
然后这就是我通过 JS 发送我的休息请求的方式:
$.ajax({
//url:"https://ayco.app/storage/profile_pics/users/andreacorriga.png",
url: "https://ayco.app",
type: "GET",
headers: {
"Access-Control-Allow-Origin": "*",
},
crossDomain: true,
success: async function(data){
console.log(base64encode(data))
alert("success")
}, // success
error: function(xhr, status){
alert("error")
} // error
})
在 JS 示例中,我留下了两个 url(其中一个被注释掉)供您尝试。具有基本 url 的那个可以完美运行,因为 cors 策略设置正确。当我尝试访问图像时,我遇到了通常的问题:
Access to XMLHttpRequest at 'https://ayco.app/storage/profile_pics/users/andreacorriga.png' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我做错了吗?这是服务器端问题还是客户端问题?任何解决方案?
解决方案
推荐阅读
- c++ - 为什么即使对于“写入时复制”的 const 成员函数也返回代理类?
- ansible - ansible 与 Ubuntu 18.04 兼容吗?
- sql-server - 与团队成员共享元数据库仪表板
- python - 将 Python 2.7 ZIP 破解器“现代化”为 Python 3.7
- python - Elementtree XML 解析在括号处停止
- c++ - C++:带有 git 的 clang 格式
- amazon-web-services - 使用 IAM 账户启动 Spot 实例请求时出错
- c# - 为什么我不能在具体类列表上调用 C# 通用列表扩展?
- wpf - WPF 的 Fluent 设计工具包
- android - 延迟后台任务在一系列事件后运行一次