Redirect 302 не работает, когда я передаю его от экспресса до реакции - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть приложение Express, и в моем API я отправляю клиенту статус 302.Клиент использует React и AXIOS.Выдает эту ошибку:

Access to XMLHttpRequest at 'https://sandbox.zarinpal.com/pg/StartPay/000000000000000000000000000000012807' (redirected from 'http://localhost:5000/api/payment/x/handle/accepted') 
from origin 'null' has been blocked by CORS policy: 
Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested resource

Вот мой API

router.post('/x/handle/accepted', (req, res) => {
    const uuidv4 = require('uuid/v4');
    zarinpalLib.request(req.body.acamount, req.body.acemail, req.body.acphone, req.body.acdescription, uuidv4(), function (data) {
        if (data.status) {
            console.log('here ', data.url)
            res.writeHeader(302, { 'Location': data.url });
            res.end();
        } else {
            console.log('here2 ', data.code)
            // res.render('error', {zpTitle: appConfig.appTitle, zpError: data.code});
            res.status(500).send(data.code)
        }
    });
});

Вот часть React

if (inputValue === 'RLS') {
    var data = {
        acfirstname: 'xx',
        aclastname: 'xx',
        acemail: 'xx',
        acphone: phoneNumber,
        acamount: inputAmount,
        acdescription: 'xx'
    };

    const res = await;
    axios({ method: 'POST', url: `${END_POINT_URL}/api/payment/x/handle/accepted`, data });
    console.log(res)
} 

Я использую это промежуточное ПО в своем приложении Express дляCORS:

var allowCrossDomain = function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Credentials', 'true');
    res.header('Access-Control-Allow-Headers', 'Content-Type,x-phone-token,Location');

    next();
}
...