通过JavaScript函数调整web API
我想从数据提供商“intrinio”检索苹果公司的财务数据 我非常擅长nodejs,因此我能够使用nodejs编写代码并将数据检索到console.log中。代码如下-通过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
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