Javascript 如何将API与应用程序Fiori(SAPUI5)一起使用

Javascript 如何将API与应用程序Fiori(SAPUI5)一起使用,javascript,ajax,sapui5,Javascript,Ajax,Sapui5,我正在尝试在我的应用程序中使用此功能。在控制器内部,我有一个ajax请求: onInit : function () { var oModel = new JSONModel(); var url = 'https://api.mercedes-benz.com/image/v1/vehicles/WDDZH3HB8JA394212/components?apikey=my_apikey'; $.ajax({ be

我正在尝试在我的应用程序中使用此功能。在控制器内部,我有一个ajax请求:

    onInit : function () {
        var oModel = new JSONModel();
        var url = 'https://api.mercedes-benz.com/image/v1/vehicles/WDDZH3HB8JA394212/components?apikey=my_apikey';

        $.ajax({
            beforeSend: function() {
                //armamos la url y la asignamos a una var       
            },
            url: url,
            type: 'GET',
            accepts: "application/json",
            success: function (resp) {
                console.log(resp)
            },
            error: function (jqXHR, estado, error) {
                console.log(error +":" + " " + estado)
            },
            timeout: 10000
        });
    },
我只希望响应为
OK
,但出现一些错误:

请求标头字段X-XHR-Logon不允许由 访问控制允许飞行前响应中的标头

响应

如果您查看文档API,我只需要API密钥。也许我做错了什么?如果您在FIORI应用程序中使用了API,请指导我,这将是非常感谢的


注意:我的fiori服务器是本地的,所以我们不使用SCP,如果你真的想做一个XHR,你需要像这样在neo-app.json中将APIKEY列为白名单

{
    "welcomeFile": "/webapp/index.html",
    "routes": [{
        ...
    ],
    "sendWelcomeFileRedirect": true,
    "headerWhiteList": [
        "APIKey"
    ]
}
否则,我严格建议使用目的地,如下所述:

  • (已解决)
  • (未解决)

如果您在发送前的
事件中放入调试器语句,您能否在请求的标题中看到
x-xhr-logon
?您知道SAP云平台中的目的地吗?您可以通过将目标创建到您试图调用的URL来解决此问题。My fiori server是本地服务器,因此我们不使用SCP:C@Jorg我放了一个休息,但我在哪里可以看到?这是我第一次使用ajax:C也许还有另一种方法用
调试器替换
//armamos la url y la asignamos a una var
,并将导入参数添加到函数:
beforeSend:function(request)
。然后打开浏览器的控制台。Chrome将停止,您可以通过与SE80类似的方式检查
请求
的值。检查Sources选项卡。这是我的情况,没有SCP,我的fiori服务器是有前提的。我怀疑任何人可能会解决这个问题,让任何不撤销安全模式的人满意。也许您应该在SAP onPrem中构建一个OData服务,调用您的外部API并将其提供给您的应用程序。我在这里看不到任何其他解决方案。是的,你也可以做来自abap的HTTP请求。。。这就取消了安全性,因为你的onPrem必须与internet进行通信…可能使用fiori服务器上的代理?我从来没有建立过与互联网通信的odata:我不知道是ABAP在做http请求,你可以把它放在odata服务中,并在你的应用程序中处理响应。谢谢但我想我必须发出https请求,否则我会在abap中出错。有可能吗?