Web数据连接器未显示弹出窗口

时间:2018-06-08 07:06:21

标签: javascript jquery authentication tableau

我为我的REST API创建了一个自定义Web数据连接器,它具有基本身份验证。

根据Tableau Documentation on Auth,它建议为auth添加基本代码,如果authType是基本代码,Tableau will show a standard username/password dialog.

  

但它从未显示弹出窗口。

  // Init function for connector, called during every phase
  myConnector.init = function(initCallback) {
      tableau.authType = tableau.authTypeEnum.basic;
      initCallback();
  }

我的JS代码

(function() {
    // Create the connector object
    var myConnector = tableau.makeConnector();

    //Basic Auth
     myConnector.init = function(initCallback) {
      tableau.authType = tableau.authTypeEnum.basic;
      initCallback();
  }

    // Define the schema
    myConnector.getSchema = function(schemaCallback) {
        var cols = [{
            id: "Name",
            alias: "Database Name",
            dataType: tableau.dataTypeEnum.string
        }, {
            id: "Size",
            alias: "Database Size",
            dataType: tableau.dataTypeEnum.int
        }, {
            id: "timeStamp",
            alias: "Timestamp",
            dataType: tableau.dataTypeEnum.datetime
        }];

        var tableSchema = {
            id: "Storage",
            alias: "Fetches data storage details",
            columns: cols
        };

        schemaCallback([tableSchema]);
    };

    // Download the data
    myConnector.getData = function(table, doneCallback) {
        $.getJSON("https://MY_API_URL", function(resp) {
            var feat = resp.content,
                tableData = [];

            // Iterate over the JSON object
            for (var i = 0, len = feat.length; i < len; i++) {
                tableData.push({
                    "Name": feat[i].Name,
                    "Size": feat[i].Size,
                    "timeStamp": feat[i].timeStamp
                });
            }

            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 = "Storage"; // This will be the data source name in Tableau
            tableau.submit(); // This sends the connector object to Tableau
        });
    });
})();

控制台日志错误 -

GET https://MY_API_URL 401 (Unauthorized)     jquery.min.js:4 

任何人都可以帮助我 -

  1. 为什么没有凭据弹出窗口出现?

  2. 在没有弹出窗口的情况下输入凭据的任何其他方式。也许在JS中动态分配ID /密码的值并从那里输入?

  3. 我正在使用 Tableau Desktop 10.5 tableauwdc-2.0.latest.js

    [编辑] -

    我遇到了这个AJAX way to build authentication URL header,但我无法实现它。任何人都可以帮忙吗?

0 个答案:

没有答案