2013-05-24 5 views
0

На веб-странице У меня есть контент, загруженный через Ajax. Если пользователь посещает фактическую страницу, на которой загружается содержимое ajax, я хочу, чтобы они были перенаправлены на родительскую страницу. Я думал, что быть умным с последующей JavaScript, который работает, но кажется, хитроумными и может разорваться с определенной URL:Перенаправить содержимое ajax на родительскую страницу

$url = top.location.href; 

if($url.indexOf('/events/') <= 0){ 
    window.location = site_url + "events/?event=" + id; 
} 

Есть ли лучший способ сделать это? Если это возможно в PHP, это было бы предпочтительнее.

Спасибо!

+0

Вы размещение, чтобы получить "Аякс содержания"? Если да, проверьте, не отправляются ли они для перенаправления. –

+0

Извините, не уверен, что я понимаю. Содержимое загружается функцией load() jQuery. – Chris

ответ

0

Пожалуйста, попробуйте следующее:

events.php

<?php 

if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
    header("Location: index.html"); 
    exit; 
} 
echo "There are no events to display."; 

?> 

index.html

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Events</title> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> 
    </head> 
    <body> 
     <div class="test"></div> 
     <script> 
      $('.test').load('events.php'); 
     </script> 
    </body> 
</html> 

Другой подход может быть как:

events.php

<?php 

if (!isset($_GET['a'])) { 
    header("Location: index.html"); 
    exit; 
} 
echo "There are no events to display."; 

?> 

Тогда вы можете запросить у $('.test').load('events.php?a');.

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

+0

Молодец, что человек - первое предложение сработало – Chris

0

Попробуйте:

$.ajax({ 
    type: "POST", 
    url: reqUrl, 
    data: reqBody, 
    dataType: "json", 
    success: function(data, textStatus) { 
     if (data.redirect) { 
      // data.redirect contains the string URL to redirect to 
      window.location.href = data.redirect; 
     } 
     else { 
      // data.form contains the HTML for the replacement form 
      $("#myform").replaceWith(data.form); 
     } 
    } 
}); 
Смежные вопросы