[服务层] Safari在AJAX调用中未使用会话Cookie

2020-09-12 20:25发布

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

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


嗨社区

我有一个可以正常工作的SAPUI5 Web应用程序,可以与SAP Business One服务层进行通信。

基本功能如下:

1。 登录服务层

2。 加载选择列表

通过SAP Cloud Platform使用目标时,所有操作均按预期进行。 但是出于某种原因,目前我必须使用硬编码的URL来访问我们的Servicelayer。

使用硬编码的URL时,WebApp无法在Apple设备/Safari Web浏览器上运行。

我总是收到错误消息:"会话无效"

就我的调试而言,我认为这是由于CORS限制所致。

Login调用按预期工作,但是一旦我开始第二个Ajax调用,xhrFields似乎为空并且不使用从Login调用中获得的SessionId。

我在控制台中显示的响应是:"加载资源失败:服务器响应状态为401(未授权)"

如您在屏幕截图中所见,使用硬编码URL时,AJAX调用不使用任何cookie。

我如何手动告诉AJAX呼叫使用从登录呼叫中获得的cookie?

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

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


嗨社区

我有一个可以正常工作的SAPUI5 Web应用程序,可以与SAP Business One服务层进行通信。

基本功能如下:

1。 登录服务层

2。 加载选择列表

通过SAP Cloud Platform使用目标时,所有操作均按预期进行。 但是出于某种原因,目前我必须使用硬编码的URL来访问我们的Servicelayer。

使用硬编码的URL时,WebApp无法在Apple设备/Safari Web浏览器上运行。

我总是收到错误消息:"会话无效"

就我的调试而言,我认为这是由于CORS限制所致。

Login调用按预期工作,但是一旦我开始第二个Ajax调用,xhrFields似乎为空并且不使用从Login调用中获得的SessionId。

我在控制台中显示的响应是:"加载资源失败:服务器响应状态为401(未授权)"

如您在屏幕截图中所见,使用硬编码URL时,AJAX调用不使用任何cookie。

我如何手动告诉AJAX呼叫使用从登录呼叫中获得的cookie?

付费偷看设置
发送
4条回答
bbpeas
1楼 · 2020-09-12 20:48.采纳回答

曼努埃尔,

使用CORS时,它似乎是Safari的限制: stackoverflow

如果从本质上讲,我建议您在服务器端实现ServiceLayer调用并调用您自己的方法。 在这种情况下,您将不需要CORS。

me_for_i
2楼-- · 2020-09-12 20:46

以下是屏幕截图:

暮风yp
3楼-- · 2020-09-12 20:59

您好,谢尔盖,

您说:"如果有很多ServiceLayer调用,则可以将它们全部包装到服务器端服务中,并通过服务(而不是直接通过服务)进行调用。"

您有样品吗? 我们在本地B1 SAP HANA系统上有一个工作示例,在此我们可以为B1ServiceLayer做XSJS"代理"。 如果应用程序托管在SAP Cloud Platform上,我将如何利用SAP Web IDE实施服务器端服务? 我发现了博客 指出现在应该可以,但是我没有找到进一步的资源来详细说明如何实现。

亲切问候

bbpeas
4楼-- · 2020-09-12 21:01

谢谢,我将让它正常工作!

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答