【问题标题】:How to set Authorization HTTP header when requesting JSONP?请求 JSONP 时如何设置授权 HTTP 标头?
【发布时间】:2017-04-17 00:05:54
【问题描述】:

我正在尝试向 Yelp API 发送 GET 请求。

我在尝试使用以下代码时遇到 401 错误。根据我的研究,如果我请求 JSONP 数据,我认为我不能以这种方式设置授权。但是,当我尝试使用另一种数据类型时,我收到了跨域请求被阻止的错误。我该如何解决这个问题?

function findFood() {
        var lat = document.getElementById("lat");
        var lon = document.getElementById("lon");

        console.log("lat: " + lat.textContent + " lon: " + lon.textContent);

        var url = API_HOST + SEARCH_PATH + "term=" + SEARCH_TERM + "&radius=" + SEARCH_RADIUS + "&latitude=" + parseFloat(lat.textContent) + "&longitude=" + parseFloat(lon.textContent);

        console.log(url);
        console.log("Bearer " + ACCESS_TOKEN);

        $.ajax({
            type: "GET",
            url: url,
            dataType: 'jsonp',
            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization', 'Bearer ' + ACCESS_TOKEN);
            },
            success: function (data) {
                console.log(JSON.stringify(data));
            }
        })

    };

【问题讨论】:

    标签: jquery ajax jsonp yelp


    【解决方案1】:

    您是否尝试过用 POST 数据替换标题?在 Yelp 网站上,他们是这么说的! 检查这些链接:jQuery API PostYelp API 2.0 Authentification我真的希望这会奏效!请在评论区告诉我!

    【讨论】:

    • 我正在尝试查询餐厅的 Yelp API...为什么会是 POST 调用?
    • 问题是授权,你尝试登录 Yelp API,但它不起作用,所以我只是给你另一种方法! @stumpylumpy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2018-05-04
    • 2018-11-25
    相关资源
    最近更新 更多