【问题标题】:Cordova GET request looses server-side cookie on IOSCordova GET 请求在 IOS 上丢失服务器端 cookie
【发布时间】:2021-12-22 09:49:11
【问题描述】:

我们正在运行一个 Cordova 应用程序,除了 IOS 上的 GET 请求外,它运行良好。在这种情况下,会话 cookie 不会传输到服务器。通常,我们使用 POST 请求进行其余的 API 调用。例外是我们通过 GET 请求加载的图像。因此,加载图片时,服务器不会将授权用户识别为已登录。

在同一设备上的浏览器上运行 web 应用程序时,一切正常。此外,在安卓上也没有问题。我的猜测是由于不同的http方法,webview选择不使用相同的cookie。这可能与现已弃用的 cordova 白名单插件有关。

登录时正在服务器上生成 cookie。

Cordova/插件版本:

"cordova-ios": "^6.2.0",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-vibration": "^3.1.1",
"cordova-plugin-wkwebview-engine": "^1.2.2",
"cordova-plugin-wkwebview-file-xhr": "^3.0.0",
"ios": "^0.0.1"

Cordova ios 偏好设置:

<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
<preference name="WKWebViewOnly" value="true" />

【问题讨论】:

    标签: ios cordova


    【解决方案1】:

    您需要解决一些问题。这两个插件现在都已过时,cordova-ios 6+

    "cordova-plugin-wkwebview-engine": "^1.2.2",
    "cordova-plugin-wkwebview-file-xhr": "^3.0.0"
     
    

    这也过时了

    <preference name="WKWebViewOnly" value="true" />
    

    默认情况下,webview 现在是 WKwebview,因此您不需要 xhr 插件,并且您使用的插件也已过时。删除它们并添加 cordova-plugin-ios-xhr

    然后从那里开始,希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2017-06-04
      • 2013-11-23
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2011-10-23
      • 2016-07-02
      • 2012-11-13
      • 2017-05-21
      相关资源
      最近更新 更多