Почему jQuery предотвращает редирект пропппера 301? - PullRequest
0 голосов
/ 19 марта 2019

Я хочу 301 перенаправить после публикации формы с загруженными мобильными библиотеками jquery и jquery в html-файле.

Это как-то не работает должным образом, так как назначение меняется, но URL остается внутри браузера,что создает несколько проблем после этого.

HTML-файл, сохраненный как Unix UTF-8:

<!DOCTYPE html>
<html lang="DE">
<head>
    <title>redirect test</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>

</head>
<body>

    <form action ="/subapp_search/filter_results_redir.php" method="POST">
        <input type="submit">test
    </form>

</body>
</html>

PHP-файл действий, сохраненный как Unix UTF-8, имя: /dir/filter_results_redir.php

<?php
    header("Location: /", TRUE, 301);
    exit;
?>

С этим кодом в окне URL браузера будет отображаться POST URL: dir/filter_results_redir.php и перенаправление.

Удаление одной из двух библиотек jQuery решит проблему, и отображаемый URL изменится на / и перенаправить

Я пробовал абсолютные и относительные URL.Сервье это Apache 2.4.18

Request URL: http://rex.local/subapp_search/filter_results_redir.php
Request Method: POST
Status Code: 301 Moved Permanently
Remote Address: 192.143.56.200:80
Referrer Policy: no-referrer-when-downgrade
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Date: Tue, 19 Mar 2019 05:51:07 GMT
Keep-Alive: timeout=5, max=100
Location: /
Server: Apache/2.4.18 (Ubuntu)
Accept: text/html, */*; q=0.01
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
AlexaToolbar-ALX_NS_PH: AlexaToolbar/alx-4.0.3
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 0
Cookie: user_cls=a%3A9%3A%7Bi%3A0%3Bi%3A961992%3Bi%3A1%3Bi%3A961993%3Bi%3A2%3Bi%3A961994%3Bi%3A3%3Bi%3A961995%3Bi%3A4%3Bi%3A961996%3Bi%3A5%3Bi%3A961997%3Bi%3A6%3Bi%3A961998%3Bi%3A7%3Bi%3A962004%3Bi%3A8%3Bi%3A962005%3B%7D; test_cookie=e8e; new_cl=vfn5kj4stc115ri78td0qt8r13; findix_counter=a%3A5%3A%7Bi%3A0%3Bs%3A6%3A%22961944%22%3Bi%3A1%3Bs%3A6%3A%22961960%22%3Bi%3A2%3Bs%3A6%3A%22961940%22%3Bi%3A3%3Bs%3A6%3A%22960238%22%3Bi%3A4%3Bs%3A6%3A%22961952%22%3B%7D; session_localrexDE=4fb1bbbfa7db5a268d50d6a3ca4fef0b
Host: rex.local
Origin: http://rex.local
Pragma: no-cache
Referer: http://rex.local/subapp_search/filter_results_redir.php
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
X-Requested-With: XMLHttpRequest

1 Ответ

0 голосов
/ 19 марта 2019

Я наконец решил это, но я не понимаю проблему. Та же самая строка кода работает, а другая - нет.

Первое, что нужно сделать, это добавить data-ajax = "false" в код. Но это не решило это.

Этот код не работает:

<form method="post" action="/filter_results_redir.php" data-ajax=”false” >

Этот код работает:

<form method="post" action="/filter_results_redir.php" data-ajax="false">

Это выглядит точно так же. Копирование со вставкой не сработало, я снова написал строчку за буквой, потом сработало.

...