2015-05-18 2 views
3

Я могу это сделать:Не удается пройти аутентификацию отправки запроса Ajax для mailgun

curl --user 'api:MYAPIKEY' -F [email protected] -F [email protected] -F subject='foo' -F text='bar' https://api.mailgun.net/v3/sandbox93d8299f673a4c3295b7592956cb3d9.mailgun.org/messages 

, но я получаю входа всплывающее окно, когда я пытаюсь сделать то же запрос с JQuery .ajax() метод:

$.ajax({ 
    headers: {"Authorization": "Basic api:key-b50a9065a7b9bdf464f3d7a418ca96bb"}, 
    // url: "././mail/contact_me.php", 
    url: "https://api.mailgun.net/v3/sandbox93d8299f673a4c32952b7592956cb3d9.mailgun.org/messages", 
    type: "POST", 
    dataType: 'json', 
    data: { 
     name: name, 
     phone: phone, 
     email: email, 
     message: message 
    }, 
    // cache: false, 
    success: function() { 
     alert('ok'); 
    }, 
    error: function() { 
     alert('problems'); 
    } 
} 

enter image description here

Сервер отвечает 401. любая идея почему?

спасибо

ответ

5

Попробуйте использовать username и password полей

$.ajax({ 
    url: "https://api.mailgun.net/v3/sandbox93d8299f673a4c32952b7592956cb3d9.mailgun.org/messages", 
    type: "POST", 
    dataType: 'json', 
    username:'api', 
    password: 'key-b50a9065a7b9bdf464f3d7a418ca96bb', 
    ... 

Если вы устанавливаете заголовок сами, вы должны base64 закодировать его

headers: {"Authorization": "Basic "+btoa("api:key-b50a9065a7b9bdf464f3d7a418ca96bb")}, 
+1

Отлично! Интересно, почему [официальные документы] (https://documentation.mailgun.com/quickstart-sending.html) имеют примеры для многих языков, но не для Javascript. Большое спасибо – masciugo

+3

@masciugo, как вы преодолели «Контроль доступа» -Allow-Origin' или 'Access-Control-Allow-Headers'? – cYrus

+0

Сделала эту работу ?? Кажется, я не могу преодолеть эту ошибку. – Cliffordwh

 Смежные вопросы

  • Нет связанных вопросов^_^