如何从javascript执行php头脚本


How to execute a php header script from javascript?

我有以下脚本validation.php

<?php
if(!isset($_SESSION['userId'])){
    session_destroy();
    header('Location: home.php');
    exit;    
}
?>

每次有人点击#main-display 中的按钮时,我都想执行这个脚本

$("#main-display").on('click', 'button', function (event){
    //some code in here
});

我该怎么做?

您不能直接从ajax请求中进行重定向,因为它只会将响应页面重定向到home.php,而不会重定向到当前的主DOM窗口。

您将不得不在php:中将其修改为类似的内容

   if(!isset($_SESSION['userId'])){
       session_destroy();
       $response['status'] = 'false';
   }
   else {
       $response['status'] = 'true';
   }
   echo json_encode($response);

然后在javascript 上

$("#main-display").on('click', 'button', function (event){
     $.getJSON('/path/to/loginStatus.php', {}, function(response) {
          if(response.status == 'false') {
               location.href = 'home.php';
           }
     });    
});

从最简单的开始,$.get('validation.php')足以让脚本运行,但要使用它做一些有用的事情,您需要提供更多的上下文。关于最通用的"无所不能"方法(包含大量选项),请参见$.ajax;其他一切都是这个的子集。

这不是完全正确的,但只有几个小的例外,你现在不应该关心。

试试这个。。

  $("#main-display").on('click', 'button', function (event){
       $.get("validate.php",function(data){
    alert("response is "+data);
       });
    });
$('#main-display').click(function(){
 $.get('validate.php');
});

希望这能奏效!