无法通过向 mailgun 发送 ajax 请求的身份验证

Cannot pass authentication sending ajax request to mailgun

我能做到:

curl --user 'api:MYAPIKEY' -F from=foo@bar.it -F to=MYEMAIL@gmail.com -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');
    }
}

服务器响应 401。知道为什么吗?

谢谢

尝试使用 usernamepassword 字段

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

如果您要自己设置 header,则必须对其进行 base64 编码

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