Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2021, 16:32
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Как сделать кросс запрос express.js
Здравствуйте.
Пытаюсь написать запрос с отправкой куки. В postman'е все работает, как надо - запросы уходят, ответы приходят. Но в express запросы не работают. Другие роуты без отправки куки в экспрессе работают нормально. Ссыль на репозиторий https://notabug.org/komplekt_17/P2P-Binance
Скрин постмана

вот код экшена на клиенте
// получение данных с merchant-ордерами
export const getMerchantOrdersAction = (objParamOrders: {
	page: number, 
	rows: number, 
	orderStatus: string, 
	tradeType: string, 
	asset: string, 
	quantityPages: string,
	requestHeader: {
		cookie: string,
		csrftoken: string,
		deviceInfo: string,
		userAgent: string,
	},
}) => {
	// $("#modal-mobileAuth").modal("hide")
	return (dispatch: {
		(arg0: { type: string }): void,
		(arg0: { type: string, result: any }): void,
		(arg0: { type: string, error: any }): void,
	}) => {
		dispatch({
			type: "LOAD_REQUESTED_DATA_ACTION",
		})
		// console.log(objParamOrders)
		// axios.defaults.withCredentials = true
		axios
			.post(`${SERVER_URI}/orders/myords/`, objParamOrders)
			.then(response => {
				// console.log(response.data)
				dispatch({
					type: "GET_MERCHANT_ORDERS_ACTION",
					result: response.data,
				})
			})
			.catch(error => {
				dispatch({
					type: "LOAD_FAILURE_DATA_ACTION",
					error,
				})
				console.log(error)
			})
	}
}

вот код роута на сервере
// получение массива ордеров мерчанта
ordersRouter.post('/myords', async (req, res) => {
	const config = {
		url: "https://c2c.binance.com/bapi/c2c/v1/private/c2c/order-match/getOrderMatchList",
		method: "POST",
		body: {
			"page": 1, 
			"rows": 20
		},
		headers: {
			"content-type":"application/json;charset=UTF-8",
			"clienttype":"web",
			"cookie":req.body.requestHeader.cookie,
			"csrftoken":req.body.requestHeader.csrftoken,
			"device-info":req.body.requestHeader.deviceInfo,
			"user-agent":req.body.requestHeader.userAgent,
		}
	}
	await axios(config)
    .then(response => {
      console.log(response.data)
      return res.status(200).json({
				success: true,
				data: response.data.data,
			});
    })
		.catch((error) => {
      console.log('request Error!')
			res.status(400).json({
				error,
				message: 'request Error!',
			});
		});
});

ответ в браузере
[IMG][/IMG]
Что делаю неправильно?

Последний раз редактировалось komplekt_17, 14.04.2021 в 13:18. Причина: добавление описания темы
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2021, 17:24
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

попробуйте добавить withCredentials:true
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2021, 17:32
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

куда? в headers{"withCredentials":true}?
headers: {
			"content-type":"application/json;charset=UTF-8",
			"clienttype":"web",
			"cookie":req.body.requestHeader.cookie,
			"csrftoken":req.body.requestHeader.csrftoken,
			"device-info":req.body.requestHeader.deviceInfo,
			"user-agent":req.body.requestHeader.userAgent,
			"withCredentials":true
		}


не заработало
Ответить с цитированием
  #4 (permalink)  
Старый 13.04.2021, 17:34
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Сообщение от Vlasenko Fedor Посмотреть сообщение
попробуйте добавить withCredentials:true
,
		headers: {
			"content-type":"application/json;charset=UTF-8",
			"clienttype":"web",
			"cookie":req.body.requestHeader.cookie,
			"csrftoken":req.body.requestHeader.csrftoken,
			"device-info":req.body.requestHeader.deviceInfo,
			"user-agent":req.body.requestHeader.userAgent,
		},
		withCredentials:true


так тоже не робит
Ответить с цитированием
  #5 (permalink)  
Старый 13.04.2021, 17:43
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Попробуйте как написано здесь
И обратите внимание на
Попробуйте в другом браузере открыть
Ответить с цитированием
  #6 (permalink)  
Старый 16.04.2021, 15:53
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Вопрос решился так
ordersRouter.post('/myords', async (req, res) => {
	const axiosRequestConfig = {
		withCredentials:true,
		method: "POST",
		url: URI_GET_MYORDERS,
		data: {
			page: req.body.page, 
			rows: req.body.rows
		},
		headers: {
			'access-control-allow-credentials': true,
			'Access-Control-Allow-Origin': '*',
			"content-type":"application/json;charset=UTF-8",
			"clienttype":"web",
			"cookie":req.body.requestHeader.cookie,
			"csrftoken":req.body.requestHeader.csrftoken,
			"device-info":req.body.requestHeader.deviceInfo,
			"user-agent":req.body.requestHeader.userAgent,
		}
	}
	await axios(axiosRequestConfig)
    .then(response => {
      console.log(response.data)
      return res.status(200).json({
				success: true,
				data: response.data.data,
			});
    })
		.catch((error) => {
      console.log('/myords request Error!')
			res.status(400).json({
				error,
				message: 'request Error!',
			});
		});
});

Всем причастным спасибо. Тему можно закрывать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы кнопка «Назад» работала бы в пределах определенного сайта? Askeer Общие вопросы Javascript 7 14.10.2016 12:23
Как сделать чтобы кнопка «Назад» работала бы в пределах определенного сайта? Askeer Общие вопросы Javascript 0 12.10.2016 18:58
Как сделать чтоб запрос повторялся до победи? nolik2000 Общие вопросы Javascript 3 02.08.2016 11:12
Как оборвать на сервере и клиенте запрос если у клиента пропала сеть. beard AJAX и COMET 3 21.12.2012 16:35
POST запрос воспринимается как OPTIONS neshta AJAX и COMET 0 29.03.2011 23:34