当我的目标是动态时如何解决 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 错误的主要内容,如果未能解决你的问题,请参考以下文章