配置Nginx和Apache允许指定域名CORS跨域访问

摘要:
前端和后端是单独开发的,这导致前端项目需要跨域请求后端接口。有许多解决方案。本文只介绍两种解决方案:1.修改后端程序代码以允许跨域请求。2.修改服务器配置文件以允许跨域请求文本。方法1:修改后端程序代码以允许跨域请求。以ThinkPHP为例。一劳永逸地,它直接位于条目文件索引PHP:header(“Access Control Allow Origin:*”)//中。您可以使用ht将星号更改为指定的域名

 前后端分离开发,导致前端项目需要跨域请求后端接口,解决方法有很多,本文只介绍两个:

1. 修改后端程序代码实现允许跨域请求

2. 修改服务器配置文件实现允许跨域请求

正文:

方法1:修改后端程序代码实现允许跨域请求 

以ThinkPHP为例,为了一劳永逸,直接在入口文件index.php中加入代码:

header("Access-Control-Allow-Origin: *");  // 可以把星号换成指定域名带http或https
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS,PATCH');

方法2:修改服务器配置文件实现允许跨域请求

Nginx配置(实现了允许多个指定域名而不是允许所有域名)

在要允许跨域的站点配置的server段中添加代码

server
{
#begin 允许指定域名跨域访问,根据自己情况修改
#不要用tab代替空格
    set $cors_origin "";
    if ($http_origin ~* "^https://a.example.com$") {
        set $cors_origin $http_origin;
    }
#允许本地vue项目跨域访问
    if ($http_origin ~* "^http://localhost:8080$") {
        set $cors_origin $http_origin;
    }
    add_header Access-Control-Allow-Origin $cors_origin;
#end 允许指定域名跨域访问,根据自己情况修改

    listen 80;
    listen 443 ssl http2;
...
}

Apache配置(本地开发环境是WAMPServer,所以也要让本地的Apache也接受跨域请求)

在httpd.conf文件中解除LoadModule headers_module modules/mod_headers.so的注释

在站点配置块(可能是httpd-vhost.conf文件中)添加代码

#
<VirtualHost *:80>
    ServerName localhost.a
    DocumentRoot "e:/projects/a/www/public"
    <Directory  "e:/projects/a/www/public/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
#上面的内容我们是不一样的
#添加下面这行允许跨域访问
        Header set Access-Control-Allow-Origin *
    </Directory>
</VirtualHost>

注:我的nginx版本是1.16.0,apache版本是2.4.39,以上方法亲测有效。

免责声明:文章转载自《配置Nginx和Apache允许指定域名CORS跨域访问》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇配置大页内存实施方案u-boot中分区和内核MTD分区关系【转】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux性能评估-cpu案例操作篇

1.平均负载案例分析 场景一:CPU 密集型进程 场景二:I/O密集型进程 场景三:大量进程的场景 2.CPU 上下文切换案例 2.1怎么查看系统的上下文切换情况 2.2查看每个进程上下文切换的情况 2.3 案例实操 3.CPU使用率的案例 3.1CPU 使用率很高,但为啥却找不到高 CPU 的应用? 3.2 等待 I/O 的 CPU的使用...

java 调用soap的简单例子(转载)

[代码] OrderProcessor.javaview sourceprint?001    package javaxml2;002     003    import java.io.IOException;004    import java.io.StringWriter;005    import java.net.MalformedURLEx...

https配置

1. https配置 1.1. 步骤 升级HTTPS,我们可以分为购买证书、安装证书、设置跳转这三个步骤 1.2. 申请证书 证书类型分为DV、OV、EV这三种,这三种有什么区别? - DV(域名型SSL):个人站点、iOS应用分发站点、登陆等单纯https加密需求的链接; - OV(企业型SSL):企业官网; - EV(增强型SSL):对安全需求更强的企...

最新版本容器编排工具rancher-v2.3.3的HA高可用部署

一、准备工作 1.1 操作系统版本 CentOS Linux release 7.6.1810 (Core) 1.2 节点信息 节点名称 ip 安装组件 node1 192.168.1.156 etcd, docker, k8s node2 192.168.1.167 etcd, docker, k8s node3 192.168.1.1...

iis下项目绑定ip、域名以及443端口号之后项目启动不起来,iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”

iis下项目绑定ip、域名以及443端口号之后项目启动不起来,iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”  很明显,80或是443端口已被另一个程序占用,所以发生此错误。解决此问题得找到哪个程序占用掉80或是443端口     注:对于443端口,SVN很多时候回占用 这个端口 、 打开CMD...

HDP 3.1.0 集成 Sqoop2

HDP 3.1.0 集成 Sqoop2 本文原始地址:https://sitoi.cn/posts/65261.html 环境 由三台主机组成的 HDP 3.1.0 集群 配置好时间同步 步骤 下载 Sqoop2 的安装包 解压安装包到 /usr/lib 目录下 修改 sqoop.sh 环境变量 修改 sqoop.properties 配置 导入第三...