2017-01-21 6 views
1

Привет Я пытаюсь отправить POST-вызов API Sparkpost в веб-приложении Javascript. Он отлично работает с curl и Postman, но как только я попробую отправить с моего сайта localhost, я получаю ошибку 401 Unauthorized.Ошибка 401 с использованием Sparkpost с XHR

Мой текущий код выглядит следующим образом, но я пробовал fetch также с теми же результатами.

sendEmail(subject, data) { 
let textbody = "blah blah blah"; 
const url = "https://api.sparkpost.com/api/v1/transmissions"; 
const fetchbody = { 
    content: { 
    from: "[email protected]", 
    subject: subject, 
    text: textbody 
    }, 
    recipients: [{address: "[email protected]"}] 
}; 
var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 
xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === 4) { 
    console.log(this.responseText); 
    } 
}); 
xhr.open("POST", url); 
xhr.setRequestHeader("content-type", "application/json"); 
xhr.setRequestHeader("accept", "application/json"); 
xhr.setRequestHeader("authorization", creds); 
xhr.setRequestHeader("cache-control", "no-cache"); 
xhr.send(JSON.stringify(fetchbody)); 
} 

Есть что-то не в порядке с моими учетными данными здесь? Обратите внимание: creds настроен на мою секретную строку ключа API.

ответ

2

Выяснил это после общения с разработчиками Sparkpost немного - служба разрешает только «строгие CORS», т.е. запросы с сервера, и я отправлял запрос с клиентского кода.