окно echo Javascript.местоположение.href не работает


У меня есть функция, которая повторяет javascript для перехода на другую страницу. Во время навигации

echo 'window.location.href="'.$url.'";'; 

Не работает и просто выводит его на экран.

"window.location.href="./index.php";

Я использую свою функцию таким образом: redirect("./index.php");

Моя функция php выглядит следующим образом

  function redirect($url)
   {    
    if (!headers_sent())
    {    
      header('Location: '.$url);
      exit;
    }
   else
    {      
      echo '<script type="text/javascript">';
      echo 'window.location.href="'.$url.'";';
      echo '</script>';
      echo '<noscript>';
      echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
      echo '</noscript>'; exit;
   }
} 
Author: safarov, 2012-04-11

3 answers

Ваш браузер обрабатывает ответ как открытый текст.

Добавьте к вашему ответу Content-Type: text/html\n плюс оберните свой контент в тег <html></html>.

 4
Author: Peter Aron Zentai, 2012-04-11 18:52:34

Почему бы просто не использовать буферизацию вывода и вообще не иметь дело с перенаправлениями JavaScript или meta?

<?php
// Top of your page
ob_start();

// Code goes here

// Redirect
if ($redirect_is_necessary)
{
    header('Location: '.$url);
    exit;
}

// Rest of page goes here

// Bottom of page
ob_end_flush();
?>
 1
Author: John Conde, 2012-04-11 19:02:45

Попробуйте этот способ.

<?php
$yourURL="http://www.stackoverflow.com";
echo ("<script>location.href='$yourURL'</script>");
?>
 0
Author: Shankar Damodaran, 2013-01-16 18:53:34