当我的目标是动态时如何解决 Rest API 的 CORS 错误

Posted

技术标签:

【中文标题】当我的目标是动态时如何解决 Rest API 的 CORS 错误【英文标题】:How to resolve CORS error for Rest API when my target is dynamy 【发布时间】:2019-09-26 00:20:18 【问题描述】:

我正在尝试使用 Angular 和节点 js 创建 Rest Response 模拟器(如邮递员)。每当我尝试发送请求时,它都会给我 CORS(跨源资源共享)错误。 我发现使用 proxy.config 解决了我们在目标中提供主机的问题。但在我的情况下, URL 是动态的。我无法在 proxy.config 文件中定义所有目标。 我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

在您的服务器脚本中添加以下代码

app.all("/api/*", function (req, res, next) 
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization,   Content-Type, X-Requested-With");
    res.header("Access-Control-Allow-Methods", "GET, PUT, POST");
    return next();
);

如果您在 springboot 中使用 angular,您只需在控制器定义之前添加以下行

@CrossOrigin(origins="http://localhost:4200",allowedHeaders="*")

例如:

@RestController
@CrossOrigin(origins="http://localhost:4200",allowedHeaders="*")
public class AccountController 

    @Autowired
    private AccountServiceImpl accountService;

    @RequestMapping("/hello")
    public String startPage()
        return "Hi";
    

它将解决问题。

【讨论】:

好的,我没有使用弹簧靴。它只是使用 httpclient 方法的角度。我也尝试过“Access-control-Allow-Origin”标头。

以上是关于当我的目标是动态时如何解决 Rest API 的 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 django rest-framework 中的错误请求

如何使用 ModelAndView 在 RestController 上实现 REST API

multi-tenant-schemas:使用django rest框架的动态api路由

REST/JSON:如何生成示例请求?如何公开 API?

创建 REST API 时使用 Laravel 嵌套动态资源控制器的正确方法

当我在标签之间导航时自动注销问题(Firebase Auth rest API)