SpringBoot解决前端的Access-Control-Allow-Origin,StatusCode:200,response为空的跨域问题

开发时遇到前端访问时总是提示:Access-Control-Allow-Origin;

或者就是请求正常,响应是200也正常,但response却是空的,啥也没有;

很可能是请求跨域被拒绝了,解决办法有很多种,可以前端解决,我是从后端解决的:

直接添加一个全局的配置就解决了(我是通过这种方式解决的),配置如下:

网上说也可以在请求的类或方法上加 @CrossOrigin 注解,可以更细粒度的控制请求的跨域,应该也是可以的(没试过)。

@Configuration
public class OriginConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")    // 配置跨域请求支持的方式
                .allowCredentials(true)    // 配置是否允许发送Cookie,用于 凭证请求, 默认不发送cookie
                .maxAge(3600)
                .allowedHeaders("*");
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
當你設置了CORS(跨源資源共享)規則但仍然收到"No 'Access-Control-Allow-Origin' header is present on the requested resource."的錯誤,這通常意味著目標服務器沒有正確地在響應頭部添加`Access-Control-Allow-Origin`標誌,允許指定的源訪問你的資源。 以下是設置CORS規則的一般步驟,請確保你已經在後端服務器上進行了如下配置: 1. **設置响应头**: ```python from flask import Flask, jsonify, make_response app = Flask(__name__) @app.after_request def add_cors(response): response.headers.add('Access-Control-Allow-Origin', '*') # 允許所有源 response.headers.add('Access-Control-Allow-Methods', 'GET, POST, OPTIONS') response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization, Access-Control-Allow-Origin') response.headers.add('Access-Control-Max-Age', 3600) # 1小時緩存 if request.method == 'OPTIONS': response.status_code = 204 return response ``` 2. **處理OPTIONS請求**: CORS預飛請求(`OPTIONS`)是一個檢查請求是否被允許的請求,如果服務器允許跨域,它會發送一個`204 No Content`響應,而不是返回數據。確保對`OPTIONS`請求的處理程序正確。 如果你已經做了上述步驟但仍遇到問題,請檢查以下幾點: - **確認服務器是否正確接收到請求**:確保不是前端發送請求的方式有誤,比如請求方法、協議(HTTP/HTTPS)或缺少必要的`Origin`頭部。 - **檢查防火牆和代理设置**:防火牆或代理服务器可能阻止了CORS請求。 - **確認後端服務是否正確應用了CORS策略**:確保所有API端點都使用了相同的CORS配置。 --相關問題--: 1. 何謂CORS預飛請求? 2. 如何在Node.js中實現類似的CORS設置? 3. 防火牆如何影響CORS?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值