Javascript 重定向Url不起作用,并且没有得到';访问控制允许原点';标题错误

Javascript 重定向Url不起作用,并且没有得到';访问控制允许原点';标题错误,javascript,node.js,ajax,express,Javascript,Node.js,Ajax,Express,我试图从我的应用程序向Nodejsserver发送Ajax请求,但是得到了这个错误 Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 我使用ajax调用向服务器(nodejs)发送请求,服务器依次返回url,在成功函数中,应该重定向服务器发送的url //nod

我试图从我的应用程序向Nodejsserver发送Ajax请求,但是得到了这个错误

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我使用ajax调用向服务器(nodejs)发送请求,服务器依次返回url,在成功函数中,应该重定向服务器发送的url

//nodejs app.js
var express = require('express');
var app = express();
var cors = require('cors');
var link= require('./routes/link');


app.use('/quote', link);

app.use(cors());

module.exports = app;

//link.js
var express = require('express');
var app = express();
var cors = require('cors');
var router = express.Router();
router.get('/', function (req, res) {
    res.send({ redirectUrl: "https://www.google.com" });
});

module.exports=router;

//frontend
$.ajax({
      method: 'get',
      url: '/quote',
      data: {
        id: "1",
        cn: "IN",
      },
      success: function (result) {
          window.location.href = result.redirectUrl; // url got from server
      },
      error: function (request, status, error) {
        console.log(request.error);
      }
    });


您可以自定义cors而不是
app.use(cors())如下所示:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

让我们试试看。

在这里订购物品只需移动“app.use(cors());“over”app.use('/quote',link);“像这样。我怀疑您是否需要填写cors中的自定义字段,正确的顺序应该可以解决此问题

  //nodejs app.js
var express = require('express');
var app = express();
var cors = require('cors');
var link= require('./routes/link');

app.use(cors());
app.use('/quote', link);
...

我已经试过了,但这不起作用,我得到了
result
作为
未定义的
以及success function result未定义,我认为cors没问题。result未定义,cors正常。
对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题。
抱歉
未定义
错误函数窗口中的was控制台。location.href=result.redirectUrl;这是您的问题,您可以这样做:window.location.href=result;