Я пытаюсь сделать запрос API POST через fetch (). Когда я выполняю его на стороне сервера (PHP или Node.js), он работает правильно. При попытке выполнить его в браузере я получаю две ошибки:
1) Ошибка 405 - метод не разрешен
2) Доступ к извлечению по адресу 'url' из источника 'null' был заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin' , Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Я попытался добавить: mode: "no-cors". Затем я получаю следующую ошибку:
«401 Несанкционированный»
со следующим ответом:
401 ответ
Вот моя стандартная настройка js:
const TrailData = {
email: "test@test.com",
first_name: "sample string 5",
last_name: "sample string 6",
phone2: "12121212"
};
// TRAIL POST ( NOT WORKING )
fetch('http://webapi.mymarketing.co.il/api/contacts', {
method: "POST",
mode: 'no-cors',
headers: {
"Authorization": "API CODE //here comes the API CODE",
"Content-Type": "application/json"
},
body: JSON.stringify(TrailData)
})
.then(res => console.log(res) )
.then(data => console.log(data))
.catch(err => console.log(err))
Настройка My Node js:
var postData = {
sms_status: "None",
email: "test@test.com",
first_name: "sample string 5",
last_name: "sample string 6",
};
let axiosConfig = {
headers: {
"Authorization": "API CODE",
'Content-Type': 'application/json;charset=UTF-8',
"Access-Control-Allow-Origin": "*",
}
};
const Trail = async () =>{
try {
const response = await axios.post('http://webapi.mymarketing.co.il/api/contacts', postData, axiosConfig)
console.log(response)
} catch (error) {
throw new Error(error)
}
}
Trail()
Узел JS работает. Я получаю 200 ОК ответ. Первый нет!
Возможно ли, что API блокирует запросы, сделанные из браузера?
Я пробовал так много способов и каждый раз терпел неудачу при использовании браузера
Спасибо за любую помощь!