.htaccess - 从本地主机访问服务器数据时出现 CORS 问题
问题描述
我想通过 http 请求从本地计算机访问远程服务器上的数据。我收到此错误:
Cross-Origin Request Blocked ... Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘[ip address].
本地机器是在 localhost:4200 上运行的 Angular 项目,远程数据通过位于 Web 上的 php 脚本访问(例如https://example.com/php)
我的问题是:我从 localhost:4200(客户端/请求计算机)的请求和我的服务器(apache)上 .htaccess 文件的 mod_headers 部分中的适当标头设置是什么。
在客户端,我尝试了以下方法,其中111.111.111.111是客户端的 IP 地址,example.com是服务器的域名。
headers.append('Access-Control-Allow-Origin', 111.111.111.111);
headers.append('Access-Control-Allow-Origin', http://111.111.111.111);
headers.append('Access-Control-Allow-Origin', '*')
headers.append('Access-Control-Allow-Origin', 'example.com')
headers.append('Access-Control-Allow-Origin', 'http://example.com')
在服务器端 .htaccess 文件(位于我尝试启动的 php 脚本的文件夹中)我尝试了以下操作,其中 111.111.111.111 是发出请求的机器的 IP 地址。
Header always set Access-Control-Allow-Origin "111.111.111.111"
Header always set Access-Control-Allow-Origin "http://111.111.111.111"
Header always set Access-Control-Allow-Origin "*"
回顾:
是否需要在请求标头上设置Access-Control-Allow-Origin,如果需要设置什么?客户的IP地址?服务器的ip地址?
是否需要在请求上设置任何其他标头,例如Access-Control-Request-Method?
可以在服务器的 .htaccess 文件中使用 IP 地址还是必须是域名?是否需要在前面加上 http:// 或 https://?
解决方案
推荐阅读
- xslt - XSLT 键在模板中不可用(使用注释集数组)
- python - 将窗口空间分成两半,让两个小部件具有相同的大小
- ios - 为什么嵌套 for 循环中的这个 sqlite 查询不返回超过 1 个结果?
- pine-script - 多重条件,单一电视警报
- javascript - 我的代码在 codepen 上运行,但不在我的浏览器中。我想getelementbyid,然后是控制台上的那个元素
- oracle - 我的程序已编译但我没有得到任何输出
- qt - 如何使用 QML 中的 QKeySequence 或 QKeySequenceEdit?
- c# - 可变3D数组图的分量大小查询(动态连通性)
- c - 为什么 ls 的这些指令计数差异如此之大?(ptrace vs perf vs qemu)
- core-data - 找不到 NSEntityDescription CoreData Swiftui 的唯一匹配项