SAPUI5在发布到后端时出现跨域资源共享问题。

2020-08-18 10:24发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAPUI5您好,

在发布到SAP后端时,我仍然遇到一些问题。

问题:

我正在使用jQuery通过以下代码发布到SAP后端:

http://pastie.org/5477802

我在SAP的传入Web服务调用中添加了调试器,它显示为方法:选项,而不是方法:POST

我已经从本地网络服务器上通过sap cloud门户对此进行了测试。

大人物

当我只是简单地通过Internet Explorer中的HTML文件运行该代码并查看调试器时,它显示方法:POST 并将我的数据添加到表中。

我的本​​地代码: http://pastie.org/5477806

现在很大了,但是,当我在Firefox/Chrome中运行相同的文件时,方法再次变为 OPTIONS

需要做什么(不知道如何做)


SAP需要在在线Web服务器上启用跨域资源共享。

或者有人需要建议我这样做的更好方法。

临时解决(错误做法)


我可以将方法选项替换为硬编码的"方法发布"。 但这是肮脏的讨厌的代码。

临时结论

作品:

  • 通过Internet Explorer和简单的HTML文件发布到SAP后端

不起作用:

  • 通过Firefox和Chrome通过简单的HTML文件发布到SAP后端
  • 通过IE,FF和Chrome在本地SAP Eclipse Web服务器上发布到SAP后端。
  • 通过IE,FF和Chrome在SAP Cloud Trial帐户上发布到SAP后端

有关CORS的详细信息:


http://enable-cors.org/

http:// stackoverflow.com/questions/1099787/jquery-ajax-post-send-options-as-request-method-in-firefox


我希望有人能帮助我,因为我花了很多时间来解决这个问题。

亲切的问候

Vincent




         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAPUI5您好,

在发布到SAP后端时,我仍然遇到一些问题。

问题:

我正在使用jQuery通过以下代码发布到SAP后端:

http://pastie.org/5477802

我在SAP的传入Web服务调用中添加了调试器,它显示为方法:选项,而不是方法:POST

我已经从本地网络服务器上通过sap cloud门户对此进行了测试。

大人物

当我只是简单地通过Internet Explorer中的HTML文件运行该代码并查看调试器时,它显示方法:POST 并将我的数据添加到表中。

我的本​​地代码: http://pastie.org/5477806

现在很大了,但是,当我在Firefox/Chrome中运行相同的文件时,方法再次变为 OPTIONS

需要做什么(不知道如何做)


SAP需要在在线Web服务器上启用跨域资源共享。

或者有人需要建议我这样做的更好方法。

临时解决(错误做法)


我可以将方法选项替换为硬编码的"方法发布"。 但这是肮脏的讨厌的代码。

临时结论

作品:

  • 通过Internet Explorer和简单的HTML文件发布到SAP后端

不起作用:

  • 通过Firefox和Chrome通过简单的HTML文件发布到SAP后端
  • 通过IE,FF和Chrome在本地SAP Eclipse Web服务器上发布到SAP后端。
  • 通过IE,FF和Chrome在SAP Cloud Trial帐户上发布到SAP后端

有关CORS的详细信息:


http://enable-cors.org/

http:// stackoverflow.com/questions/1099787/jquery-ajax-post-send-options-as-request-method-in-firefox


我希望有人能帮助我,因为我花了很多时间来解决这个问题。

亲切的问候

Vincent




付费偷看设置
发送
6条回答
浮生未央
1楼 · 2020-08-18 10:48.采纳回答

文森特,你好

由于您的IE设置(Internet选项->安全-> <选择您的区域>->自定义级别->其他->跨域访问数据源),您的编码可以在IE中使用。 如果激活它,您应该知道,跨源的所有请求都是允许的-我想那是您真正不想要的。 顺便说一句,选择"提示"选项并没有真正的帮助,因为IE不会告诉您哪个来源尝试将请求发送到哪个来源。 在IE(小于10)中,存在XDomainRequest对象,该对象实现了CORS(但与带有CORS的XMLHttpRequest相比,它具有许多限制)。

但是,由于当前大多数现有服务均不支持CORS,因此我建议配置/安装反向代理(Apache,SAP Web Dispatcher等),该代理将请求定向到正确的源(并模拟一个 浏览器的单一来源)。

我们目前正在开发《 End2End教程》的扩展 http://scn.sap.com/docs/DOC-33792 跨域主题。

Hth,伯恩哈德

huskylover
2楼-- · 2020-08-18 10:56

假期后,我将继续进行此操作,因此请不要担心! ????

节日快乐!

空代码
3楼-- · 2020-08-18 10:43

我已经尝试过:


var invocation = new XMLHttpRequest(); var url =' http://delyo001.you .local:8000/sap/bc/youconsulting/ws/rest/anonymous/z_names_post'; var body =' perthyrtyrtygop sparta ';
invocation.open('POST',url,true); invocation.setRequestHeader('X-PINGOTHER','pingpong'); invocation.setRequestHeader('Content-Type','application/xml'); invocation.send(body);

仅在IE中本地工作。

代楠1984
4楼-- · 2020-08-18 10:55

你好克里斯蒂安,

这将不起作用。

我需要用代理做些事情。

亲切的问候,

Vincent

悠然的二货
5楼-- · 2020-08-18 10:55

嗨Vincent,

检查以下链接。

HTML5摇滚-使用CORS

http://www.html5rocks.com/en/tutorials/cors/?redirect_from_locale=en

预检请求:

预检请求是作为HTTP OPTIONS请求发出的(因此请确保您的服务器能够响应此方法)

希望有帮助。

此致

基督徒

吹牛啤
6楼-- · 2020-08-18 10:52

嗨,

对于仍在寻找解决方案的您:
使用App Router解决CORS
或:使用代理服务器解决CORS
(在本地和云中运行)

干杯,
卡洛斯

一周热门 更多>