ZBLOG

react 接口请求报错access to xmlhttprequest at 'http:192.168.1.234:700/api/all' from origin 'http:localhost:3000' has been blocked by cors policy

这个错误是由于跨域资源共享(CORS)政策导致的。CORS 是一种安全特性,浏览器限制来自不同源的请求,以保护用户数据。

要解决这个问题,你可以考虑以下几种方法:

1. 在服务器上启用 CORS

你需要在后端服务器中添加 CORS 头部。具体实现取决于你使用的后端框架。下面是一些常见框架的示例:

  • Node.js (Express): “`javascript const express = require(‘express’); const cors = require(‘cors’);

const app = express();

app.use(cors()); // 启用 CORS

// 或者配置具体的来源 // app.use(cors({ origin: ‘http://localhost:3000’ }));

app.listen(700, () => {

console.log('Server running on http://192.168.1.234:700');

});


- **Spring Boot**:
  ```java
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.web.servlet.config.annotation.CorsRegistry;
  import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

  @Configuration
  public class WebConfig implements WebMvcConfigurer {
      @Override
      public void addCorsMappings(CorsRegistry registry) {
          registry.addMapping("/api/**")
                  .allowedOrigins("http://localhost:3000") // 指定允许跨域访问的地址
                  .allowedMethods("GET", "POST", "PUT", "DELETE");
      }
  }

2. 使用代理

如果你不能修改后端代码,可以在开发环境中使用代理。例如,在 create-react-app 中,你可以在 package.json 文件中添加一个代理配置:

"proxy": "http://192.168.1.234:700"

然后,通过相对路径进行 API 请求,例如 /api/all

3. 使用浏览器插件

作为临时解决方案,可以使用浏览器扩展程序来禁用 CORS。但这并不是推荐的方法,仅适合开发阶段。

总结

建议优先选择第一种方式,即在服务器上正确配置 CORS。这是处理跨域问题最安全和有效的方法。如果无法控制后端,则可以考虑其他替代方案。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19076

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?