首页 > 解决方案 > 从本地主机访问服务器数据时出现 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 "*"

回顾:

  1. 是否需要在请求标头上设置Access-Control-Allow-Origin,如果需要设置什么?客户的IP地址?服务器的ip地址?

  2. 是否需要在请求上设置任何其他标头,例如Access-Control-Request-Method

  3. 可以在服务器的 .htaccess 文件中使用 IP 地址还是必须是域名?是否需要在前面加上 http:// 或 https://?

标签: .htaccesscorsrequest-headers

解决方案


推荐阅读