postmates api的AJAX中的HTTP身份验证失败

HTTP Authentication failing in AJAX for postmates api

本文关键字:HTTP 身份验证 失败 中的 AJAX api postmates      更新时间:2023-09-26

我正在尝试使用邮局API,它首先要求我们使用http基本身份验证对自己进行身份验证。下面代码中的username字段是我们插入private API key的位置。

 <script>
    $(document).ready(function(){
        // Request with custom header
        $.ajax({
            url: ' http://username:@api.postmates.com',
            type: 'GET',
            dataType: 'jsonp',
            success: function(response) { alert("Success"); },
            error: function(error) {alert(error); }
        });
    });
    </script>

我们得到的错误是

XMLHttpRequest无法加载http://api.postmates.com/?callback=jQuery112008309037607698633_1462052396724&amp_=1462052396725飞行前的响应无效(重定向)

需要身份验证

https://postmates.com/developer/docs#authentication

实际使用的标头将是一个base64编码的字符串,如这个:

基本Y2YyZjJkNmQtYTMxNC00NGE4LWI2MDATA1M2MwYWzMTY1Og==

尝试

$(document).ready(function(){
        // Request with custom header
        $.ajax({
            url: ' http://username:@api.postmates.com',
            type: 'GET',
            dataType: 'jsonp',
            success: function(response) { alert("Success"); },
            error: function(error) {alert(error); },
            beforeSend: function (xhr) {
                    xhr.setRequestHeader ("Authorization", "Basic Y2YyZjJkNmQtYTMxNC00NGE4LWI2MDAtNTA1M2MwYWYzMTY1Og==");
                    }
        });
    });

我不测试,因为jsfiddle阻止外部请愿。