Angular 8 / NodeJS CORS error: Redirect location disallowed

Angular 8 / NodeJS CORS error: Redirect location disallowed

我在实验室环境中使用 Angular 8 和 NodeJS 后端。我在 Angular 中有一个按钮,它使用 POST 请求向后端服务器发送一个值。收到该值后,后端会根据 returns 中 JSON 中的状态代码的形式的值联系到 API 服务器,我需要在前端将其用于条件.

Angular 按钮逻辑如下所示:

      this.form = this.fb.group({
        ticket: [''],
      })
    }

const testTicket = this.form.value.ticket

submitForm() {

   this.http.post('http://backend.com:8090/api/backendquery?testTicket='+ testTicket ,{}).subscribe (
            (response) => {
              console.log(response)
              if(response != 'failure') {
              this.ticketFound=true
              this.ticketNotFound=false
              status = 'Success'
              } else {
              // if(response == null) {
              this.ticketNotFound=true
              this.ticketFound=false
              status = 'Failed'
              }
    })
  }

连接到 API 服务器的后端代码如下所示:

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

app.post('/api/backendquery', function(req, res){
res.redirect('https://username:password@myserver.com/ticketquery='+req.query.testTicket); 
 });

我在 URL 中传递了凭据,因为 API 服务器需要身份验证。

我使用以下方法从 Postman 成功获得结果 URL:

http://backend.com:8090/api/backendquery?testTicket=12345

但是,当通过提交值使用浏览器时,我在控制台上收到以下错误:

'http://backend.com:8090/api/backendquery?testTicket=12345' 来自来源 'http://frontend:4200' 已被 CORS 策略阻止:重定向位置 '' 包含用户名和密码,这对于跨源请求是不允许的。

如您在后端代码中所见,CORS 包已启用,应该会处理 CORS 错误。我知道凭据不应出现在 URL 中,但是,在我的情况下,最好的方法是什么?

答案是 GET 请求不是在后端重定向,而是使用 "required" 包完成,然后保存到一个变量,然后转发回前端。