Как сделать кросс запрос 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] ![]() Что делаю неправильно? |
попробуйте добавить withCredentials:true
|
куда? в 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 } не заработало |
Цитата:
, 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 так тоже не робит |
|
Вопрос решился так
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!', }); }); }); Всем причастным спасибо. Тему можно закрывать. |
Часовой пояс GMT +3, время: 02:20. |