问题描述
我有一个Angular Universal应用。我正在尝试访问外部API,但是直接通过HttpClient执行此操作会产生Cors错误。在开发中,我成功使用代理进行了呼叫。我正在尝试通过在我的Express服务器上创建一条将在相应的外部API路由中交换的路由来在生产环境中实现代理。我在网上看不到任何可以帮助解决这种特殊情况的问题。我似乎已经设置好了路线。我收到200 ok错误,但没有数据正在发送。有人可以帮忙吗?
server.ts
NOT EXISTS
解决方法
您可以像这样简单地从服务器端启用cors。
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
为了更好地理解或通过配置cors()url。 可以看到here。
默认情况下,它将调用options方法以检查用户访问该端点的权限。
或者您可以通过客户端api调用使用以下示例,
let data = { name: 'Peter Parker',age: 34 };
const results = await fetch(
'http://localhost:3000/api/v1/results',{
method: "post",mode: "cors",headers: {
"Content-Type": "application/json","Access-Control-Allow-Origin": "*"
},body: JSON.stringify(data)
}
)
.then(res => res.json())
.then(res => {
return res;
})
.catch(error => {
error.response = {
status: 0,statusText:
"Cannot connect. Please make sure you are connected to internet."
};
throw error;
});