【问题标题】:submitting a form with ajax and retaining session使用 ajax 提交表单并保留会话
【发布时间】:2012-11-15 18:26:45
【问题描述】:

我在域 A 上有一个页面,其中包含来自域 B 的 javascript。该脚本使用 Ajax 从域 A 加载表单并将其发布回 A。

表单被 Yesod 拒绝,因为缺少会话变量,该变量驻留在 cookie 中,因此未在 Ajax 请求中传输。

Yesod 的会话机制可以在这种情况下工作吗?

【问题讨论】:

  • 我知道你不这样做一定是有原因的,但你不能简单地从站点 B 复制 JavaScript 并将其托管在 A 上,以便一切都驻留在 A 上吗?提交需要跨域会话/cookie 数据的表单可能会很棘手,有些人会认为出于安全原因不应该这样做。
  • 我正在编写一个从第三方网站收集用户反馈的系统。脚本和服务器端机器位于域 B 上,无法移动。

标签: ajax haskell session-cookies yesod


【解决方案1】:

Yesod 的作者 Michael Shoyman 给了我一个答案。就我而言,最简单的方法是禁用该特定表单的 CSRF 保护。有一个api函数。

http://hackage.haskell.org/packages/archive/yesod-form/1.1.4.1/doc/html/Yesod-Form-Functions.html#v:runFormPostNoToken

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2019-07-09
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多