URL中的字段名称在Internet Explorer上被替换为“×”

时间:2019-06-17 09:10:13

标签: javascript php internet-explorer

我正在使用jQuery serialize()和window.open函数将表单数据获取到另一个页面,该页面将根据该数据打印出文件。

在重定向之前,URL看起来不错(控制台记录了序列化的URL):

renter_postal_address%5D=&times%5Bstart_date%5D=17.06.2019&times%5Bstart_hours%5D=10&times%5Bstart_minutes%5D=56&times%5Bend_date%5D=17.06.2019&times%5Bend_hours%5D=11&times%5Bend_minutes%5D=56

到达所需页面后,URL如下所示(仅适用于I.E):

renter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=10×%5Bstart_minutes%5D=56×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=11×%5Bend_minutes%5D=56

Google Chrome浏览器上的网址:

?act=rent.fillBookingContractTemplate&item_id=1&data=action=issue_item&item_id=&data%5Bcontract_no%5D=1560762473&data%5Bcurrent_unit_id%5D=&data%5Brenter_personal_code%5D=&data%5Brenter_name%5D=&data%5Brenter_phone%5D=&data%5Brenter_email%5D=&data%5Brenter_postal_address%5D=&times%5Bstart_date%5D=17.06.2019&times%5Bstart_hours%5D=12&times%5Bstart_minutes%5D=07&times%5Bend_date%5D=17.06.2019&times%5Bend_hours%5D=13&times%5Bend_minutes%5D=07&data%5Breturned_to_unit_id%5D=0&data%5Bcountry%5D=Eesti&data%5Breceived_helmets%5D=&data%5Bdocument_id%5D=&data%5Bdocument_issue_date%5D=&data%5Bdocument_valid_to%5D=&data%5Blicence_id%5D=&data%5Blicence_issue_date%5D=&data%5Blicence_valid_to%5D=&data%5Bissuing_comment%5D=

Internet Explorer(最新版本)上的URL:

?act=rent.fillBookingContractTemplate&item_id=1&data=action=issue_item&item_id=&data%5Bcontract_no%5D=1560762453&data%5Bcurrent_unit_id%5D=&data%5Brenter_personal_code%5D=&data%5Brenter_name%5D=&data%5Brenter_phone%5D=&data%5Brenter_email%5D=&data%5Brenter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=12×%5Bstart_minutes%5D=07×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=13×%5Bend_minutes%5D=07&data%5Breturned_to_unit_id%5D=0&data%5Bcountry%5D=Eesti&data%5Breceived_helmets%5D=&data%5Bdocument_id%5D=&data%5Bdocument_issue_date%5D=&data%5Bdocument_valid_to%5D=&data%5Blicence_id%5D=&data%5Blicence_issue_date%5D=&data%5Blicence_valid_to%5D=&data%5Bissuing_comment%5D=

再现错误的代码示例:

<?php
if (isset($_GET)) {
    var_dump($_GET);
}
?>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" crossorigin="anonymous"
        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="></script>

<form method="POST" id="item-issuing-form">
    <input type="hidden" name="action" value="issue_item">
    <input type="hidden" name="item_id" value="275">
    <input type="hidden" name="data[contract_no]" value="1560836285">
    <input type="hidden" name="data[current_unit_id]" value="664">

    <input name="data[renter_personal_code]">
    <input name="data[renter_name]">
    <input name="data[renter_phone]">
    <input name="data[renter_email]">
    <input name="data[renter_postal_address]">
    <input name="times[start_date]">
    <select name="times[start_hours]"></select>
    <select name="times[start_minutes]"></select>
    <input name="times[end_date]">
    <select name="times[end_hours]"></select>
    <select name="times[end_minutes]"></select>
    <select name="data[returned_to_unit_id]"></select>
    <select name="data[country]"></select>
    <input name="data[received_helmets]">
    <input name="data[document_id]">
    <input name="data[document_issue_date]">
    <input name="data[document_valid_to]">
    <input name="data[licence_id]">
    <input name="data[licence_issue_date]">
    <input name="data[licence_valid_to]">
    <textarea name="data[issuing_comment]"></textarea>

    <button type="button" class="go-test">Go</button>
</form>

<script>
    $('.go-test').on('click', function () {
        window.open('index.php?item_id=275&data=' + $('#item-issuing-form').serialize(), '_blank');
    });
</script>

0 个答案:

没有答案