【发布时间】:2014-08-01 15:07:38
【问题描述】:
我在 url 链接中遇到 jquery 语法问题:
这是我得到的链接(英文):
...myaccount/?lang=en%2Fprint-order%2F2067%2F&print-order-type=receipt
这是德语链接:
...myaccount/print-order/2067/?print-order-type=receipt
现在的问题是,链接在我的浏览器中看起来没问题
myaccount/print-order/2067/?print-order-type=receipt
但实际上,当我复制链接时,链接内总是有一个“%2F”而不是“/”,这会导致获取 404 的问题。
当我手动替换“%2F”时,链接有效。
问题出在哪里?有什么想法可以解决这个问题吗?
以下代码来自woocommerce/templates/myaccount/my-orders.php
if ($actions) { foreach ( $actions as $key => $action ) { echo '<a
href="' . esc_url( $action['url'] ) . '" class="button ' .
sanitize_html_class( $key ) . '">' . esc_html( $action['name'] ) .
'</a>'; }
它会在“我的订单”页面上生成“打印”按钮。我正在使用 mqtranslate 德语/英语。在德语版本中,一切正常——链接是正确的,只有当我切换语言时,才会出现“%2f”而不是“/”。但也只能在第一部分之后(直到 myaccount/)——因为一些“/”被正确编码。
在英文版中,它在“print-order-type=receipt”之前是一个“&”而不是一个“?”。
【问题讨论】:
-
真的不知道 jquery 或 javascript 对您的 URL 问题有什么影响?
-
显示你正在使用的 jQuery 代码。
-
是的,对不起,也许这不是 jquery 的问题——我首先是这么想的。我从生成它的文件中添加了代码
-
在第一个 url 中看起来你有 2 个查询字符串:
myaccount/?lang=en%2Fprint-order%2F2067%2F?print-order-type=receipt。看起来好像第二个 urlprint-order/2067/?print-order-type=receipt被附加到myaccount/?lang=en -
嗨丹尼尔,是的,这是真的 - 我正在使用 mqtranslate 并用 jquery 删除了这段代码 - “href.replace” 这就是为什么我首先认为它与 jquery 有关。但事实并非如此。我认为是这个“esc_url” - 但我不知道在哪里改变它。两者都与此无关......
标签: javascript php woocommerce