3

我的 Facebook、Google、Twitter 的 API 中有我的 OAuth 登录和回调方法。它是一个运行在 3000 端口上的快递应用程序。

我在端口 4200 上运行了另一个 angular 2 应用程序。我正在尝试通过 http get 调用 express api url。它向我抛出了 CORS 错误。

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。 跨域读取阻止 (CORB) 阻止了 mime 类型 text/html 的跨域响应

4

3 回答 3

2

CORS 的存在是为了保护您的服务器免受不需要的外部 AJAX 请求。您需要在服务器上主动启用 CORS 才能使用它。

由于您没有指定服务器类型,以下在 IIS 上操作方法和在 Apache 上的操作方法。如果您使用不同类型的服务器,则应在该特定服务器类型上查找“启用 CORS”。

最佳做法是只允许您想要打开的域的 CORS,而不是允许所有内容 ( *),因为这会增加您服务器的潜在漏洞。

于 2018-06-12T08:15:06.620 回答
1

使用ExpressJS CORS 中间件允许跨域请求(CORS 在这里解释

https://github.com/expressjs/cors

于 2018-06-18T09:43:50.537 回答
1

大多数时候,解决问题的最简单方法是更新服务器。大多数服务器端技术都提供了快速配置 CORS 的支持。例如,对于 Node 和 ExpressJS,它只包括安装 CORS 中间件并在初始化 Express 应用程序时使用它:

var express = require('express') , cors = require('cors') , app = express();app.use(cors()); 
(...)

有关更多详细信息,请参阅以下链接: http ://restlet.com/company/blog/2016/09/27/how-to-fix-cors-problems/

关于 CORS,请参考我发现有用的以下链接: https ://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

于 2018-06-19T02:43:22.173 回答