nginx解决静态页面中ajax跨域方案配置

nginx解决静态页面中ajax跨域方案配置

有些老项目遗留的静态页面使用jquery中ajax 又不想使用webpack或者gulp启动,用Nginx配置跨域问题

下载安装Nginx 下载链接:Nginx下载 根据你的电脑下载对应安装包
在这里插入图片描述
注意:解压安装的时候不要在有中文名的文件夹下,否则会有报错
在这里插入图片描述
双击nginx.exe 启动Nginx 可以在任务管理器中查看
在这里插入图片描述
然后进入nginx\conf下的 nginx.conf 下 使用编辑器vscode或者其他编辑器打开进行配置信息修改

server {
 	listen 4000;#端口默认80端口
    server_name localhost;#域名
}

配置好后使用命令 nginx -s reload (在nginx文件夹下启动cmd终端后输入命令重启Nginx)
在这里插入图片描述

然后在浏览器输入localhost:4000 出现如下图信息这Nginx配置成功
在这里插入图片描述
以上配置完成后 下面来配置ajax配置跨域问题

server {
        listen       4000;#端口
        server_name  localhost;#域名
        add_header Access-Control-Allow-Origin *;#允许跨域

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           root   D:/newProject/demo;#本地项目路径
           index  index.html index.htm;#目录下有index.html直接打开页面
           autoindex on;#目录下没有index.html则直接打开文件夹显示所有文件
        }

        location /xxx/ {  # /xxx/ 为ajax接口匹配项 例如接口为: xxx/abc/abs?aa=1&bb=2
            proxy_pass http://111.111.111.11:8090;# 测试请求地址为你项目具体请求地址
            #以下为Ajax中跨域配置项
   			add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' '*';
            add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
        }     
}

配置完成后重启Nginx cmd中输入命令nginx -s reload
浏览器输入http://localhost:4000 选择你对应的文件后F12查看请求Ajax
如果需要token等信息 请手动添加 cookie 或者localStorage

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx 配置跨域(CORS)是为了允许来自不同源或协议的网页向你的服务器发起AJAX请求,通常在API服务常见。Nginx 配置跨域可以通过修改 `http` 或 `server` 模块下的 `add_header` 和 `allow` 子指令来实现。 默认情况下,Nginx 不允许跨域请求,但你可以设置允许特定来源的访问。以下是一个基本的 CORS 配置示例: ```nginx location /api { add_header 'Access-Control-Allow-Origin' '*'; # 允许所有来源 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization'; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 1728000; # 响应预检请求的时间,单位秒 add_header 'Content-Length' 0; return 204; } } ``` 这里解释一下关键配置项: - `Access-Control-Allow-Origin`: 设置允许的源,星号 (*) 表示所有源都可以,如果你只想允许特定的源,可以换成实际的域名或URL。 - `Access-Control-Allow-Methods`: 允许的方法类型,如 GET、POST等。 - `Access-Control-Allow-Headers`: 允许的HTTP头部信息。 - `if ($request_method = 'OPTIONS')`: 当请求类型为 OPTIONS(预检请求),用于检查服务器是否允许跨域,返回 204 表示成功。 如果你想禁止跨域,可以不添加这些 `add_header` 指令,或者将它们注释掉。但通常情况下,为了兼容现代浏览器的同源策略和安全需求,允许跨域是必要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值