首页 > 解决方案 > 如何在没有外部库的情况下在浏览器中发送带有标头的 GET 请求

问题描述

我的用例:如何在不使用浏览器的情况下从带有不记名授权的 API 获取数据request

例如:我可以使用request模块在 Node.js 中执行以下操作:

var request = require('request');

var headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer bearer-token-uuid'
};

var options = {
    url: 'https://api.data.umac.mo/service/facilities/access_control_records/v1.0.0/all',
    headers: headers
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

如何在带有香草 JavaScript 且没有库的浏览器中执行此操作?

标签: javascript

解决方案


注意:您永远不想将任何身份验证令牌硬编码到脚本本身中。您将从 oauth 调用中获取令牌并将其传递给您的请求。


如果您正在寻找一种在客户端执行此操作的方法(即在浏览器而不是节点中,则标准方法是使用fetch API。

例子:

const headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer 48267b68-d989-3610-9287-4943e8590eb0'
};
const url = 'https://api.data.umac.mo/service/facilities/access_control_records/v1.0.0/all';
window.fetch(url, { headers })
.then(response => response.json())
.then(body => {
  console.log(body);
})
.catch(e => console.error(e));

请注意,根据您需要支持的浏览器,您可能需要polyfill fetch


推荐阅读