1

希望大家身体健康,精神抖擞。

我正在尝试使用 JET 在 iframe 中显示 oracle 文档(包含文件的文件夹)。因为我需要从 oracle 提供的 REST api 获得 JSON 响应。当我们使用 postman 访问其余 api 时,它会返回正确的 JSON 输出(参考)。

但是,当我尝试使用 JSON Ajax 调用获取相同信息时,我在浏览器控制台中收到以下错误:

jquery-3.1.0.js:9392 XMLHttpRequest 无法加载链接。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:8383 ”。

这是剪断的代码:

self.getFolderDetails = function(){
     $.ajax({
        url: "testurl",
        type: "GET",
        userName: "<User name>",
        password: "<Password>",
        async: false,
        crossDomain: true,
        headers: {
            'Content-Type' : 'application/json',
            'Authorization' : 'Basic <Auth Token>'
        },
        success: function (data) {
             parsedJSON = JSON.parse(JSON.stringify(data));
             console.log('Response JSON Data-->  ' + JSON.stringify(data));
        },
        error: function (jqXHR, textStatus, errorThrown) {
             console.log('Fail Response JSON Data-->  ' + JSON.stringify(data));
        }
    });
 }

通常在这种情况下,我们对暴露的 Web 服务应用 CORS 过滤器。由于这些服务是由开发云团队创建的,因此我无法从我的角度进行任何更改。

非常感谢您对此的任何帮助。

4

2 回答 2

0

正如您所说,这种情况需要 CORS,因为它是浏览器的安全功能。话虽如此,您可以尝试一些解决方法。

  1. JSONP:此功能再次依赖于服务器端,因此除非 oracle 提供它,否则您将无法做到。

  2. 服务器端适配器:您可以在服务器端创建自己的服务,该服务调用 oracle 服务。你不会有同源问题。

于 2016-11-30T19:06:29.303 回答
0

Oracle Document Cloud 服务不允许其他域使用 REST 访问信息,直到您使用 Doc Cloud 服务中的管理员操作在“跨域域”中分配域。

但是对于 localhost 上的测试,您可以在 Google chrome 中使用一些插件(Allow-Control-Allow-Origin),它允许您访问相同的插件而不会引发错误。

注意:希望您在 iframe 中打开 Applink 时 了解accessTokenrefresh Token角色的内容。

于 2017-02-18T07:42:46.620 回答