我需要帮助向Node.js Express服务器Angular Universal中的外部API发出API请求

问题描述

我有一个Angular Universal应用。我正在尝试访问外部API,但是直接通过HttpClient执行此操作会产生Cors错误。在开发中,我成功使用代理进行了呼叫。我正在尝试通过在我的Express服务器上创建一条将在相应的外部API路由中交换的路由来在生产环境中实现代理。我在网上看不到任何可以帮助解决这种特殊情况的问题。我似乎已经设置好了路线。我收到200 ok错误,但没有数据正在发送。有人可以帮忙吗?

server.ts

NOT EXISTS

console message

解决方法

您可以像这样简单地从服务器端启用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;
  });