如何在没有外部库的情况下在浏览器中发送带有标头的GET请求

时间:2018-10-26 19:53:34

标签: javascript

我的用例:如何在不使用request的情况下在浏览器中通过具有载体授权的API获取数据?

例如:我可以使用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且没有库的浏览器中执行此操作?

1 个答案:

答案 0 :(得分:1)

注意:您永远不会希望将任何身份验证令牌硬编码到脚本本身中。您将从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