【问题标题】:Chrome iOS bug within form submit - redirects to wrong URL表单提交中的 Chrome iOS 错误 - 重定向到错误的 URL
【发布时间】:2023-03-29 04:34:01
【问题描述】:

我正在通过 jQuery 更改表单的 action 属性。这适用于所有主要浏览器和设备,但不适用于 chrome 72.0.3626.101 iOS。

<form id="filter_form" action="/previous-folder/">
    <select name="brand" id="filter_brand">
        <option value="example">Example</option>
        <option value="test">Test</option>
    </select>
    <input id="filter_submit" type="submit" value="Suchen">
</form>

jquery 代码:

<script>
    $("#filter_submit").on("click", function(e){
       $("#filter_form").attr("action", "/"+$("#filter_brand").val()+"/").submit();
       return false;
    });
</script>

所以选择按钮决定了 URL,应该去 /example/?para..

而是转到/previous-folder/#/example/?para

更改的 URL 是正确的,我尝试输出到控制台,它是好的。然而,在 iOS 上提交的 URL 是提到的那个。适用于所有其他设备。

顺便说一下,该 URL 受 apache 重写规则影响:

RewriteRule  ^/home/www/(example/(.*))/(ref-.*)?$ /subapp_search/index.php?fa=1&rw=1 [L]

如何调试和修复这样的行为?

【问题讨论】:

    标签: jquery google-chrome mod-rewrite


    【解决方案1】:

    我不建议在提交按钮单击事件中使用任何脚本。改用表单提交事件

    $("#filter_form").on("submit", function(e) {
      this.action =  "/" + $("#filter_brand").val() + "/"
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form id="filter_form" action="/previous-folder/">
      <select name="brand" id="filter_brand">
        <option value="example">Example</option>
        <option value="test">Test</option>
      </select>
      <input id="filter_submit" type="submit" value="Suchen">
    </form>

    【讨论】:

    • 有趣的方法。我实现了它,但效果相同。试试看:staging.www.de.watchgurus.de/rolexandy:newpw2 点击“打开”,将品牌更改为例如欧米茄并提交。会去/rolex/#/omega/吗?
    • 但返回欧米茄手表。我有一个怀疑-我会看看
    • 嗯,在普通电脑上测试 iPhone 时 Chrome 中的 OK URL。很奇怪。
    • 是的,它会返回欧米茄手表,但如果您再次打开并选择另一个品牌,则会失败,因为 URL 完全混淆了。
    • 在我看来是服务器或某些移动插件上的重写规则,除非我在普通 chrome 中作为 iphone 6 进行调试时会发生这种情况
    猜你喜欢
    • 2021-10-29
    • 2017-10-11
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    相关资源
    最近更新 更多