URL перенаправления не работает и не получает заголовок «Access-Control-Allow-Origin» Ошибка - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь отправить запрос Ajax на Nodejsserver из моего приложения, но получаю эту ошибку

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);
      }
    });

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Вы можете использовать собственные 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();
});

Давай попробуем.

0 голосов
/ 10 апреля 2019

Порядок здесь имеет значение: выше "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);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...