Nginx 设置跨域访问

简介: 什么是跨域访问,当我们通过浏览器访问a网站时,同事会利用到ajax或其他方式,同时也请求b网站,这样的话就出现了请求一个页面,使用了两个域名,这种方式对浏览器来说默认是禁止的。

一、跨域访问


什么是跨域访问,当我们通过浏览器访问a网站时,同事会利用到ajax或其他方式,同时也请求b网站,这样的话就出现了请求一个页面,使用了两个域名,这种方式对浏览器来说默认是禁止的。


二、设置跨域访问


1.ngx_http_headers_module模块语法
Syntax: add_header name value [always];
Default:    —
Context:    http, server, location, if in location
COPY
2.nginx配置示例
location ~* \.html$ {
    add_header Access-Control-Allow-Origin *;  # *指允许所有,也可指定,例如:http://10.0.0.56
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
}


三、模拟跨域访问


1.配置被跨域的网站


配置nginx


[root@web02 conf.d]# vim beikuayu.conf
server {
    listen 80;
    server_name localhost;
    location / {
        root /code;
        index index.html;
    }
}


保存后,重启nginx生效。


配置页面 [root@web02 ~]# echo "


我是被跨域网站


" > /code/index.html


2.配置跨域网站


配置nginx


[root@web01 conf.d]# vim kuayu.conf
server {
    listen 80;
    server_name localhost;
    location / {
        root /code/kuayu;
        index index.html;
    }
}


配置页面


[root@web01 ~]# mkdir /code/kuayu
[root@web01 ~]# vim /code/kuayu/index.html
<html lang="en">
<head>
        <meta charset="UTF-8" />
        <title>测试ajax和跨域访问</title>
        <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
        $.ajax({
        type: "GET",
        url: "http://10.0.0.57",
        success: function(data) {
                alert("successful! 跨域成功!");
        },
        error: function() {
                alert("fail! 跨域失败!");
        }
        });
});
</script>
        <body>
                <h1>测试跨域访问</h1>
        </body>
</html>


保存后,重启nginx生效。


3.配置允许跨域访问


[root@web02 conf.d]# vim beikuayu.conf
server {
    listen 80;
    server_name localhost;
    root /code;
    index index.html;
    location ~* \.html$ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
    }
}


4.Web页面展示


image.png

相关文章
|
2月前
|
前端开发 Java 应用服务中间件
Nginx访问异常的解决方法
Nginx访问异常的解决方法
|
3月前
|
前端开发 应用服务中间件 Linux
nginx解决springcloud前后端跨域问题,同时配置ssl
nginx解决springcloud前后端跨域问题,同时配置ssl
|
2天前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
21 3
|
2天前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
10天前
|
监控 数据可视化 安全
如何查找访问 Nginx 的前 10 个 IP?
【5月更文挑战第1天】
23 1
如何查找访问 Nginx 的前 10 个 IP?
|
21天前
|
前端开发 应用服务中间件 网络安全
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
60 0
|
22天前
|
Ubuntu 应用服务中间件 Linux
nginx 配置代理ip访问https的域名配置
nginx 配置代理ip访问https的域名配置
|
1月前
|
应用服务中间件 Shell nginx
win10 nginx设置开机启动 --亲测有效
win10 nginx设置开机启动 --亲测有效
21 0
|
1月前
|
应用服务中间件 Nacos nginx
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
|
1月前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
54 0