被CORS策略阻止:没有"Access-Control-Allow-Origin"
创始人
2024-11-28 04:31:22
0次

当使用Ajax请求时,如果目标服务器没有设置正确的CORS响应头,就会出现“被CORS策略阻止:没有'Access-Control-Allow-Origin'”错误。解决方法如下:

  1. 使用代理服务器:在你的服务器上创建一个代理服务器,将Ajax请求转发到目标服务器,并将响应返回给前端。这样就可以绕过浏览器的CORS限制。以下是一个使用Node.js和Express的示例:
const express = require('express');
const request = require('request');

const app = express();

app.get('/api/data', (req, res) => {
  const url = 'http://目标服务器的URL'; // 目标服务器的URL
  req.pipe(request(url)).pipe(res);
});

app.listen(3000, () => {
  console.log('代理服务器已启动,监听端口3000');
});

在前端代码中,将Ajax请求的URL改为代理服务器的URL,如http://localhost:3000/api/data。

  1. 在服务器端设置CORS响应头:如果你有权限访问目标服务器的配置文件,可以在服务器端设置CORS响应头,允许指定的域名访问。以下是一个使用Node.js和Express的示例:
const express = require('express');
const app = express();

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', 'http://你的域名'); // 允许指定的域名访问,可以使用通配符*允许所有域名访问
  res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); // 允许的请求方法
  res.header('Access-Control-Allow-Headers', 'Content-Type'); // 允许的请求头
  next();
});

// 处理请求的路由和逻辑代码...

app.listen(3000, () => {
  console.log('服务器已启动,监听端口3000');
});

需要将http://你的域名替换为你允许访问的域名,也可以使用通配符*允许所有域名访问。

这两种方法都可以解决CORS策略阻止的问题,选择哪种方法取决于你的实际情况。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...