РЕДАКТИРОВАТЬ: Решено, размещены подробности ниже в качестве ответа ... Довольно глупая ошибка пользователя
Я пытаюсь написать простой плагин для SteelSeries Gamesense для отображения текущей воспроизводимой песни из iTunes на экране GameDAC. В основном движок работает через предоставленный сервер, который прослушивает почтовые запросы в теле JSON. Я пытался заставить мой запрос работать довольно долго, но безуспешно.
Я проверил запрос на Postman, и он должен работать как задумано, так что проблема, вероятно, в синтаксисе.
const axios = require('axios');
const coreProps = require(process.env.ProgramData + '/SteelSeries/SteelSeries Engine 3/coreProps.json');
const url = JSON.stringify(coreProps['address']);
axios.defaults.baseURL = 'http://' + url.replace(/"/g,'');
axios.defaults.headers['post'] = {'Content-Type': 'application/json'};
console.log(axios.defaults.headers);
function bind_itunes() {
const data = {
"game": "ITUNES",
"event": "NOWPLAYING",
"handlers": [
{
"device-type": "screened",
"zone": "one",
"mode": "screen",
"datas": [
{
"has-text": true,
"context-frame-key": "songname"
}
]
}
]
};
axios.post('game_event', JSON.stringify(data))
.then((res) => {
console.log(res)
}).catch((error) => {
console.error(error)
})
}
bind_itunes();
Сбой кода с длинным блоком ошибок от Axios с ошибкой
"data: { error: 'passed value not string or JSON object' } }"
полный журнал ошибок (pastebin, поскольку он довольно длинный): https://pastebin.com/aLguKQ2C
Скриншот почтальона