在本教程的前一篇文章:SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型 我们试图在本地运行的 SAP UI5 应用(localhost:8080)里, 访问远端的 OData 服务 https://services.odata.org/V2/Northwind/Northwind.svc,会遇到跨域访问的相关错误:

当时步骤 24 给出的解决方案就是,使用 chrome.exe 的启动参数 --disable-web-security, 来临时禁掉其安全策略检查。

本文介绍另一种使用本地架设的代理服务器的方法,同样能达到避免该跨域错误的目的。

本文解决方案的思路如下

由于跨域访问资源的限制只存在于 Web 应用运行于浏览器中发出的请求,对于用 Node.js 开发的应用则不受该限制。

因此,我们使用 Node.js 开发一个 Web 服务器,充当代理服务器的角色,如下图郑重绿色 方块所示。当我们运行在本地 localhost 域的 SAP UI5 应用(下图最左边)发起 OData 请求时,这个请求会直接发送给代理服务器(下图图例1),后者把这个请求再发给远端的 OData 服务器(下图图例2)。远端 OData 服务器把响应发送给本地代理服务器(下图图例3),代理服务器再把该响应

SAP UI5 应用开发教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题相关推荐

  1. SAP UI5 初学者教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  2. 一键部署开箱即用的代理服务器,解决 SAP UI5 应用开发过程中访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  3. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  4. SAP UI5 应用开发教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解

    从本教程 24 步骤开始,我们接触了 OData 模型.本地学习 SAP UI5 应用开发时,如果直接消费远端的 OData 服务,就会遇到跨域错误. 步骤 24 SAP UI5 初学者教程之二十四 ...

  5. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍

    本教程目前为止的二十八个步骤,我们开发的 SAP UI5 仅仅包含了一个单独的页面.本步骤我们将额外开发一个新的页面,并学习如何在这些不同的页面之间进行路由(route)和导航(navigation) ...

  6. SAP UI5 应用开发教程之二十八 - SAP UI5 应用的集成测试工具 OPA 介绍

    本教程前一步骤,我们介绍了 SAP UI5 单元测试工具 QUnit 的使用方法.本步骤介绍测试金字塔模型中位于单元测试上层的集成测试在 SAP UI5 中的实现工具:OPA. 本步骤对应的源代码位于 ...

  7. SAP UI5 应用开发教程之二十 - SAP UI5 的表达式绑定用法讲解

    在本教程的前一步骤 SAP UI5 初学者教程之十九 - SAP UI5 数据类型和复杂的数据绑定 里,我们已经开发了一个具有金额和货币显示的发票列表,效果如下图所示: 本步骤我们继续对这个发票列表添 ...

  8. SAP UI5 应用开发教程之二十四 - 如何使用 OData 数据模型

    本教程之前的二十三个步骤,使用的数据模型都是 JSON 模型.从本步骤开始,我们要学习另一种非常重要的数据模型:OData 数据模型. OData 数据模型也是 SAP 产品里广泛使用的数据模型,比如 ...

  9. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

最新文章

  1. ORB-SLAM2 论文翻译
  2. codefirst数据库迁移
  3. [JSP暑假实训] 一.MyEclipse安装及JAVA基础知识
  4. SpringMVC与Mybatis整合---SpringMVC学习笔记(六)
  5. PHP判断字符串是纯英文、纯汉字或汉英混合
  6. 数码摄影入门之二 准确的曝光
  7. mysq 没有mysql数据库_mysq 没有mysql数据库
  8. wifi无线设备服务器驱动,如何安装Windows 10的WiFi驱动程序
  9. 小白学java-JVM知识点总结
  10. Accumulator Proof解析
  11. oracle px execute reply,关于昨天的PX Deq: Execute Reply重新开贴请教
  12. 华三离别华为一周年:销售80亿元纳税8亿
  13. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
  14. IMDb Large Movie Review-数据集
  15. RT-Thread——STM32——FAL库
  16. 100t家用文件服务器,100t容量云服务器
  17. Flutter PDF Android 电子签章不显示问题
  18. Java实验报告一(完全数、一年四季、杨辉三角、path和classpath区别、next()和nextLine()区别)
  19. Python数据分析:手把手教你用Pandas生成可视化图表
  20. SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问

热门文章

  1. java中比较两个日期的大小
  2. 异常处理---SpringMVC学习笔记(十)
  3. Stack around the variable 'date' was corrupted.
  4. HTTP协议容易犯的误区
  5. POJ 1936 All in All
  6. 我是如何学习写一个操作系统(八):内存管理和段页机制
  7. C++Primer第五版——习题答案详解(九)
  8. docker安装教程-centos
  9. 移动端效果之Picker
  10. Eclipse常用的快捷方式