【发布时间】:2018-12-21 06:48:06
【问题描述】:
我在 Netlify 上有一个纯前端 Web 应用程序,它必须使用 OpenSubtitles.org 上的 API。虽然 OpenSubtitles.org 启用了 CORS,但有时我遇到了预检错误,所以我决定使用代理。
我在使用 Netlify 的代理功能时遇到了问题,因此我决定在 Heroku 上创建自己的代理,并将我的请求从前端发送到那里,这样这些请求就会从服务器代理到 OpenSubtitles.org。
根据我找到的代码here,我想出了以下内容:
const express = require('express');
const request = require('request');
express()
.use('/', function(req, res) {
req.pipe(
request({
url: 'http://rest.opensubtitles.org/search' + req.url,
headers: {
'User-Agent': 'TemporaryUserAgent'
}
})
).pipe(res);
})
.listen(process.env.PORT || 8000);
我想我部署了这个,试试看,然后我会在它上面启用 CORS。但是我刚刚意识到它可以完美地工作而无需做任何其他事情。这怎么可能?为什么我可以在不明确启用 CORS 的情况下从不同域上的纯前端应用调用它?
另外,如果服务器崩溃了,如何处理那里的错误?
【问题讨论】: