【问题标题】:jquery mobile canceling 302 redirect to external sitejquery mobile取消302重定向到外部站点
【发布时间】:2011-10-09 01:58:53
【问题描述】:

我正在尝试将 DotNetOpenAuth 与使用 jquery mobile 的网站集成。我遇到了一个问题,jquery mobile 似乎正在取消 302 重定向到服务器正在响应的提供方(外部站点)。

我尝试在 mobileinit 事件中关闭默认的 jquery 移动 ajax 处理:

$.mobile.ajaxEnabled = false;

如果我将 jquery mobile 排除在图片之外,则 302 重定向将得到正确处理,并且与提供方的 OpenID 集成工作正常。

谁能告诉我如何让 jquery mobile 正确处理 302 重定向到外部站点?

【问题讨论】:

标签: jquery-mobile dotnetopenauth


【解决方案1】:

对于表单,只需将“data-ajax”属性设置为 false。

应该是这样的:

<form action="postthis" method="post" data-ajax="false">

这将禁用 jQuery mobile 的默认 ajax 处理。

参考:http://jquerymobile.com/test/docs/forms/forms-sample.html

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,在将 rel="external" 添加到登录链接后能够登录,请参见下面的示例

    <a href="/authentication/logon" rel="external" data-icon="gear" class="ui-btn-right">Login</a>
    

    我不确定这是否是您正在寻找的解决方案?

    【讨论】:

    • 非常感谢,这给我带来了很大的麻烦
    【解决方案3】:

    要禁用 Ajax,您应该在对 jquery mobile 的脚本引用之前添加此脚本:

     <script language="javascript" type="text/javascript">
            $(document).bind('mobileinit', function () {
    
                $.mobile.ajaxEnabled = false;
             });
     </script>
    

    如果您不使用 Ajax,则重定向到外部 URL 确实有效。
    但是应该有一个替代方案,您不需要禁用 Ajax。

    【讨论】:

    • 我以为我已经尝试过了(没有运气),但我可能把脚本的位置弄错了。今天晚些时候我会试一试。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2016-03-05
    • 2012-01-27
    • 1970-01-01
    • 2014-05-26
    相关资源
    最近更新 更多