通过JavaScript函数调整web API

通过JavaScript函数调整web API,javascript,node.js,asp.net-web-api,Javascript,Node.js,Asp.net Web Api,我想从数据提供商“intrinio”检索苹果公司的财务数据 我非常擅长nodejs,因此我能够使用nodejs编写代码并将数据检索到console.log中。代码如下- var https = require("https"); var username = "****"; var password = "****"; var auth = "Basic " + new Buffer(username + ':' + password).toString('base64'); var req

我想从数据提供商“intrinio”检索苹果公司的财务数据

我非常擅长nodejs,因此我能够使用nodejs编写代码并将数据检索到console.log中。代码如下-

var https = require("https");
var username = "****";
var password = "****";
var auth = "Basic " + new Buffer(username + ':' + 
password).toString('base64');

var request = https.request({
method: "GET",
host: "api.intrinio.com",
path: "/companies?ticker=AAPL",
headers: {
    "Authorization": auth
 }
 }, function(response) {
 var json = "";
 response.on('data', function (chunk) {
    json += chunk;
 });
 response.on('end', function() {
    var company = JSON.parse(json);
    console.log(company);
 });
});

request.end();

我这里的问题是如何在javascript(没有节点)函数中编写此代码,并在单击按钮并在html页面上显示数据时调用javascript函数。请帮我解决这个问题。

我建议您使用Ajax请求。只需使用POST方法并获取数据

$.ajax({  
            type: "POST",  
            url: "https://api.intrinio.com/companies?ticker=AAPL",  
            header: auth,  
            success: function(dataString) {
                console.log(dataString); 
            }  
        });  
您可以使用JavaScript XMLHttpRequest

或者您可以使用以下基于承诺的相同功能-

var callAPI = function(type, url, payload) {
return new Promise(function(resolve, reject) {
    var xhttp = new XMLHttpRequest();
    xhttp.open(type, url, true);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader("Authorization", authToken);
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4) {
            resolve({
                status : this.status,
                data : JSON.parse(this.responseText)
            });
        }
    };
    if(type.toLowerCase() === 'post'){
        xhttp.send(JSON.stringify(payload));
    }else{
        xhttp.send();
    }
});
}

您可以使用XMLHttpRequest,但要充分意识到,将其放在网页前端会导致您的用户名/密码以某种方式暴露。@ReyHaynes您可以通过存储密码的服务器端(节点、php等)路由请求。然后对您自己的api使用XMLHttpRequest。@OnklMaps True…但问题是他希望基本上从前端执行,而不需要节点本身。没有理由在这里使用jQuery。他也从来没有问过使用POST