【问题标题】:InvalidAuthenticityToken from rails for POST request from openlaszlo appRails 中的 InvalidAuthenticityToken 用于来自 openlaszlo 应用程序的 POST 请求
【发布时间】:2010-09-12 01:48:26
【问题描述】:

来自 Rails 的 InvalidAuthenticityToken 用于 POST 请求 大家好 我有一个 Rails 服务器正在运行,我向它发出 POST 请求。

数据集定义为

现在根据 Rails 文档,为了发出 POST 请求,我需要将添加“authenticity_token”设置为查询字符串。因此,例如,如果authenticity_token 是“xxxxxxx”,那么最终的 url 应该看起来像 http://mywebsite.com/doSomething?aut..._token=xxxxxxx

我在 flashvars 中从服务器获取真实性令牌。

我有一个名为 auth_token 的用户定义画布属性,用于存储真实性令牌。

下面是我用来发出请求的 openlaszlo 代码。

var d = canvas.datasets.ds; var 内容 = get_my_content(); d.setQueryParam('lzpostbody',content); d.setQueryString({authenticity_token : encodeURIcomponent(canvas.auth_token) }); d.doRequest

在这段代码中,setQueryString 调用似乎清除了查询参数。如果我更改 setQueryString 的顺序并调用 setQueryParam,则会发生相反的情况。

问题是。有没有办法在不更改/删除查询参数的情况下设置查询字符串。

非常感谢 普奈特

【问题讨论】:

    标签: ruby-on-rails authentication post request openlaszlo


    【解决方案1】:

    我对 OpenLaszlo 一无所知,但我猜setQueryParam 添加或修改了一个参数,而setQueryString 用对象的内容覆盖了整个查询字符串。

    您不应该只添加真实性令牌吗?

    d.setQueryParam('lzpostbody', content);
    d.setQueryParam('authenticity_token', encodeURIcomponent(canvas.auth_token));
    

    【讨论】:

    • 我认为我真的做不到,因为。 'lzpostbody' 是一种特殊类型的请求参数,用于发出原始 POST 请求。根据 Openlaszlo 参考指南“未定义对具有多个请求参数的请求使用“lzpostbody””因此,在您的示例中,您实际上是在尝试使用 2 个参数,包括 lzpostbody 并且这是未定义的。感谢您的帮助
    • @Puneet Paul - 所以你必须提供两个参数让应用程序接受它,但你只能提供一个?听起来该应用程序的设计存在缺陷。
    猜你喜欢
    • 2020-02-22
    • 2010-11-17
    • 2013-03-12
    • 2019-01-13
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多