Tableau WDC 错误从源“http://xyz.8888”访问“https://apex/api”处的 XMLHttpRequest 已被 CORS 策略阻止

问题描述 投票:0回答:1

运行 JavaScript 和 jQuery 代码时,我在浏览器控制台中收到此错误。过去有人犯过这个错误吗?任何帮助将不胜感激。

错误:

条件:未选择任何数据类型

ERROR1:浏览器控制台错误:从源“http://xyz.8888”访问“https://apex/api”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

条件:数据类型设置为“jsonp”

ERROR2:没有浏览器控制台错误,但没有收到任何响应。但是在 chrome 浏览器的“网络”选项卡下获取此内容以调用 API:(失败)net::ERR_BLOCKED_BY_ORB

更新了我的ajax调用如下: 尝试将数据类型设置为“jsonp” 尝试将 Access-Control-Allow-Origin 设置为 *

// Download the data
    myConnector.getData = function(table, doneCallback) {
        console.log("Inside Data download");
*****Works until here, but fail at this ajax call*********
        $.ajax({
                crossDomain: true,
                headers: {'Access-Control-Allow-Origin': '*'},
                dataType: 'jsonp', ====> IF YOU REMOVE DATATYPE IT GIVES ERROR 1 ABOVE WITH DATATYPE IT GIVES ERROR 2
                url: 'https://apex/api',
                success: function(resp){
                    var feat = resp.features,
                    tableData = [];

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

            table.appendRows(tableData);
            doneCallback();
        }
        });
    };
jquery cors tableau-api
1个回答
0
投票

这是一个安全错误,表明默认设置不允许您执行此操作。

Access-Control-Allow-Origin
是响应标头。 它必须由服务器设置,而不是由您设置。 如果您控制服务器,则可以更改这些设置。 否则,您可以与控制 API 的公司联系。

请参阅 MDN 上的跨源资源共享了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.