【问题标题】:Worklight : how to set use addGlobalHeader for WL.Client.invokeProcedure callsWorklight:如何为 WL.Client.invokeProcedure 调用设置使用 addGlobalHeader
【发布时间】:2014-07-24 19:14:50
【问题描述】:

对于 WorkLight 应用程序,我没有看到一些 cookie 标头被发送到服务器以进行基本的 WL.Client.invokeProcedure 调用。如何正确添加 cookie 标头?理想情况下,这些将是全局的,但我读到使用 WL.Client.addGlobalHeader("Cookie") 可能存在问题。程序)。

这基本上是 Javascript 中的代码:

var invocationData = {
    adapter : "data",
    procedure : procedure,
    headers : { "Cookie", "CookieData=val" }
    parameters : parms,
};
WL.Client.invokeProcedure(invocationData)

编辑:http://www-01.ibm.com/support/docview.wss?uid=swg21678099 “WL.Client.addGlobalHeader API 替换整个 'Cookie' 标头并破坏会话状态。”

【问题讨论】:

  • 您能否详细说明“问题”的陈述?
  • 您是否尝试使用 Wireshark 检查网络流量以查看 cookie 是否确实与您的请求一起发送?

标签: java javascript cordova ibm-mobilefirst


【解决方案1】:

目前无法将您自己的 cookie 添加到 Worklight 请求中。就像您的编辑说的那样,使用 addGlobalHeader() 添加的任何 Cookie 标头都会被 WL 添加的 cookie 替换。

已打开功能请求以查看是否可以在未来版本中添加此功能。

【讨论】:

  • 如果您使用 document.cookie,它们将与桌面浏览器版本一起发送。使用 chrome 浏览器测试。
  • 是的,因为 cookie 的生成方式因运行它们的操作系统而异;在浏览器中运行它的情况下,并没有做太多事情,因为它不是生产环境;但如果你在任何移动设备上运行它,它很可能会被替换。
  • 我想知道本机 cookie 管理器功能是否可用。例如。使用上面的 Java/Android 代码,我们可以设置 cookie。另外,您是否知道任何有关此问题的 IBM 文档。
  • 对不起,我刚刚看到技术说明说 document.cookie 应该可以工作,但我认为这个技术说明是错误的;它可以在浏览器中运行,但由于目前 Worklight 的实施方式,它不适用于设备。
  • 至少 cookie 被保存,例如如果您查看设备上的 cookie 存储。可能没有发送。
【解决方案2】:

MFP 7.0.0 添加了一个新 API - WL.Client.setCookie()

使用示例:

WL.Client.setCookie({
  name: 'cookieName',
  value: 'cookieValue',
  domain: 'google.com',
  path: '/', // all paths
  expires: 0 // never expires
}).then(function() {
  // callbacks go here
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多