Как правильно перенаправить мое приложение реакции из nodejs? - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть страница, на которой, когда пользователь нажимает кнопку, приложение прослушивает и создает вызов извлечения на мой локальный сервер, который выполняет процесс, а затем перенаправляет на внешний URL-адрес, скажем, google.com (на самом деле я разместил URL-адрес моегодомашняя страница, просто чтобы посмотреть, будет ли она работать, но ничего не получилось. Я получаю ту же ошибку (сервер и приложение реакции находятся на разных портах)) как мне избежать текущей ошибки, с которой я сталкиваюсь "Доступ к выборке в 'http://localhost:3001/'(перенаправлено из 'http://localhost:3000/servreq') из источника' null 'было заблокировано политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном заголовке «Access-Control-Allow-Origin» нетресурс. Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS. "

Клиент: ----------------------------------------------

//.....
testitem(){
fetch('http://localhost:3000/payreq', {
            method: 'post',
            headers: { 'Content-Type': 'application/json'},
            body: JSON.stringify({
            })
        })
}
//......
<button className="btn btn-primary" onClick={this.testitem}>Redirect</button>
//......

Сервер: -----------------------------------------------

const express= require('express');
const bodyParser= require('body-parser');
const cors=require('cors');
const app=express();
app.use(bodyParser.json());
app.use(cors({origin: 'http://localhost:3001'}));
//im requesting from say localhost:3001/test/test 

app.post('/',(req,res)=>{
    res.redirect('http://localhost:3001/');
})

Я пытался сделать следующее безрезультатно: (Я понимаю, чтоorigen имеет значение null, но я не знаю, как исправить)

- Добавить заголовки

- метод конкатенации

- Подстановочный метод '*' (я не думаю, что это соответствующий плюс не работает)

Одна попытка сработала, но, на мой взгляд, это не то, что должно быть сделано.

Я просто сгенерировал res.json (веб-сайт, на который нужно перейти) на стороне сервера и на стороне клиента, просто прочитал это и использую window.location = ответ на перенаправление, но опять же, я не думаю, что это лучший способ. Есликто-то там мог бы помочь мне, я был бы очень признателен.

1 Ответ

0 голосов
/ 31 декабря 2018

Если вы запрашиваете страницу с другого сервера приложений, вы должны указать серверу приложений вашего хостинга принимать запросы от разных серверов хоста, добавив следующие строки в файл web-сервера хоста приложений и добавив необходимые jar-файлы в classpath

<filter>
         <filter-name>CORS</filter-name>
         <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>CORS</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

Необходимые jars: cors-filter.jar, java-property-utils.jar Примечание: я исключил все ссылки из фильтра cors, добавив / *, вы можете установить необходимые пути.Я надеюсь, что это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...