【发布时间】:2021-06-19 22:27:34
【问题描述】:
我正在编写此代码以从网站获取数据并将数据放入表格中。 XMLhttprequest 有效,我取回数据并可以存储它。但是,一旦我添加了 x=1999 的这个 for 循环,响应就为空。我知道我没有将“x”值添加到每个 xml 请求中进行迭代,因为我只是想让它首先在第一次迭代中工作。
(function () {
// Create the connector object
var myConnector = tableau.makeConnector();
// Define the schema
myConnector.getSchema = function (schemaCallback) {
var cols = [
{
id: "Currency",
dataType: tableau.dataTypeEnum.string,
},
{
id: "Price",
alias: "Price",
dataType: tableau.dataTypeEnum.float,
},
{
id: "Year",
alias: "Year",
dataType: tableau.dataTypeEnum.float,
},
{
id: "Base",
alias: "Base",
dataType: tableau.dataTypeEnum.string,
},
];
var tableSchema = {
id: "EXratesFeed",
alias: "Exchange Rates latest feed",
columns: cols,
};
schemaCallback([tableSchema]);
};
// Download the data
myConnector.getData = function (table, doneCallback) {
//$.getJSON("https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_week.geojson", function(resp) {
tableData = [];
//loop through all dates
//var x = 1999;
//for (var x = 1999; x<2022; x++) {
var requestURL = "https://api.exchangerate.host/latest";
var request = new XMLHttpRequest();
request.open("GET", requestURL);
request.responseType = "json";
request.send();
request.onload = function (resp) {
var response = request.response;
console.log(response);
var feat = response.rates;
//var year = x;
// Iterate over the JSsON object
var count = Object.keys(feat).length;
for (var i = 0, len = count; i < len; i++) {
var currencyAbr = Object.keys(feat)[i];
var currencyPrice = Object.values(feat)[i];
tableData.push({
Currency: currencyAbr,
Price: currencyPrice,
Base: response.base,
// "Year": x,
//"mag": feat[i].properties.mag,
//"title": feat[i].properties.title,
//"location": feat[i].geometry
});
}
};
table.appendRows(tableData);
doneCallback();
//};
};
tableau.registerConnector(myConnector);
// Create event listeners for when the user submits the form
$(document).ready(function () {
$("#submitButton").click(function () {
tableau.connectionName = "Exchange rate feed";
tableau.submit();
});
});
})();
【问题讨论】:
-
为什么请求在循环中?您只使用
x作为结果。请求或响应中没有使用xo.O
标签: javascript