Я использую топор ios с квазаром / vue. axios.post(this.serverUrl, null, {params: {blah: "test"}}
параметры являются третьим параметром. Я видел, что это должно быть 2-ым, но когда это было, я получил следующее:
Доступ к XMLHttpRequest в 'https://example.com' from origin 'http://localhost: 8080 'заблокировано политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Когда это был 3-й параметр, все было хорошо.
Все было хорошо, пока мне не нужно было передать массив jsons, например: var info = [{name: "test", age: 40},{name: "tester", age: 50}]
Независимо от того, что я пробовал, включая использование qs: axios.post(this.serverUrl, null, {params: {dataToSend: info},paramsSerializer: params => { return qs.stringify(params)}
и других метод синтаксического анализа
parseParams(params) {
const keys = Object.keys(params);
let options = '';
keys.forEach((key) => {
const isParamTypeObject = typeof params[key] === 'object';
const isParamTypeArray = isParamTypeObject && (params[key].length >= 0);
if (!isParamTypeObject) {
options += `${key}=${params[key]}&`;
}
if (isParamTypeObject && isParamTypeArray) {
params[key].forEach((element) => {
options += `${key}=${element}&`;
});
}
});
return options ? options.slice(0, -1) : options;
},
Я начал получать вышеуказанную ошибку CORS.
Я предполагаю, что синтаксический анализ неверен, но я не мог понять, как это преодолеть, даже после прочтения так много примеров в Интернете. Мой сервер ожидает получить массив jsons, как указано выше [{name: "test", age: 40},{name: "tester", age: 50}]
, поэтому мне нужно, чтобы клиент отправил его как таковой. Я использую топор ios 0.19.1
Чего мне не хватает? Спасибо!
Обновление:
"/api": {
target: "https://myrealdomain.com:8443",
changeOrigin: true,
pathRewrite: {
"^/api": "/mysuffix1/mysuffix2"
}
}
и вызов axios.post("api", {...})
работает, но в реальной жизни файлы будут находиться на том же месте, что и сервер https://myrealdomain.com и мне не нужен суффикс API, только mysuffix1 / mysuffix2.
Могу ли я смоделировать changeOrigin в dev, чтобы он был таким же, как prod?