【问题标题】:How to enable CORS in AngularJs? [duplicate]如何在 AngularJs 中启用 CORS? [复制]
【发布时间】:2020-06-27 12:03:22
【问题描述】:

我正在尝试使用 angularJS 使用 ZOOM API POST 方法:

/webinars/{webinarId}/panelists

当我在本地运行解决方案时,我的角度控制器返回错误:

Zoom 提供了要实现的代码,以便能够通过端点将小组成员添加到网络研讨会。使用 Zoom API 执行此操作将为我们节省大量时间,因为有时每个网络研讨会有 30 多名小组成员。

这对我来说是新事物,到目前为止,我在 Angular 应用程序上的工作还不错,但这个错误带来了新的复杂性。我在 SO 中找到了这个问题/答案:

How to use a CORS proxy to get around “No Access-Control-Allow-Origin header” problems

但我对所有这些东西真的不了解,我想就如何纠正这个问题寻求一些帮助和指导,也许可以使用本段上方链接中提供的示例。

这是我到目前为止的代码,但它失败了:

// call zoom api to add panelists
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
    if (this.readyState === this.DONE) {
        console.log(this.responseText);
    }
});
xhr.open("POST", "https://api.zoom.us/v2/webinars/"  + scope.webinarId + "/panelists");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Bearer " + $scope.accessToken + ");
xhr.send($scope.panelists)

感谢您的帮助, 伊拉斯莫

【问题讨论】:

  • 确实,正如答案所暗示的那样,问题源于服务器端,因此除非您按照链接答案中的建议使用代理,否则您将陷入困境。
  • @see sharper - 谢谢

标签: javascript rest cors angularjs-controller web-api-testing


【解决方案1】:

应该在您的 Web 服务器或您用于后端的框架(Larvel、Symfony、Spring Boot)中启用 CORS。

由于我的回答被否决,我会澄清一下。 在他的特殊情况下,他可以通过使用例如 Express JS 或 http 节点代理来解决问题。 这样,他将使用运行应用程序的主机名,而不是使用https://api.zoom.us/v2/webinars/。 这是当您无权访问网络服务器配置或您要调用其端点的后端解决方案时的解决方案。

【讨论】:

  • 为什么我的评论被否决了?在他的情况下,他可能会通过使用 Express JS 或 http 节点代理来解决它。这样,他将使用运行应用程序的主机名,而不是 api.zoom.us/v2/webinars
猜你喜欢
  • 2018-10-19
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 2016-10-25
  • 2019-08-10
相关资源
最近更新 更多