簡體   English   中英

使用PHP和jQuery AJAX獲取當前頁面名稱

[英]Get current page name with PHP and jQuery AJAX

我想登錄網站的訪問者的引薦和登陸頁面。 基本設置如下:

在我的index.html文件中,包括我的JavaScript文件: <script src="js/log.js"></script> 在這里,我使用AJAX調用PHP文件來獲取引薦來源網址和登錄頁面,如下所示:

$.ajax({
    type: "post",
    url: 'php/functions.php',
    data: 'request_type=get_page_info',
    success: function (data) {
                console.log('DATA: '+data);
    }
});

在我的PHP functions.php文件中,我返回參照頁面和登錄頁面,如下所示:

if( isset($_POST['request_type']) &&  $_POST['request_type'] == 'get_page_info'){
   echo 'The referer is: '.$_SERVER['HTTP_REFERER'].' and 
         the landing page is: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}

一切都相當簡單。 假設我是從stackoverflow.com來到此站點的,我希望AJAX成功函數中的數據如下所示:

引薦來源網址為:www.stackoverflow.com,登錄頁面為:www.mysite.com/index.html

但是,相反,我得到這個:

引薦來源網址為:www.mysite.com/index.html,目標網頁為:www.mysite.com/php/functions.php

我在哪里錯呢?

提前致謝。

UPDATE

我之所以嘗試這種方法,是因為這個小例子是一個較大的項目的一部分,該項目旨在作為某種插件。 為了使用戶易於集成到他們的網站中,我希望他們能夠僅在頁面標題中包含javascript文件,僅此而已。 因此,將index.html更改為index.php並僅添加php代碼的選擇實際上並不是我要找的方法。

您正在回顯ajax調用本身的引用者,而不是您的登錄頁面。 由於HTTP是無狀態的,因此您無法通過Ajax調用獲得這些信息而不將它們存儲在某個地方,因此您需要將以下代碼放在www.mysite.com/index.html並擺脫ajax調用:

<?php
if( isset($_POST['request_type']) &&  $_POST['request_type'] == 'get_page_info'){
   echo 'The referer is: '.$_SERVER['HTTP_REFERER'].' and the landing page is: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
?>

您可以使用javascript訪問當前頁面引薦來源網址:

document.referrer

這是為了防止您的主頁不使用php。 如果您使用的是php,則可以在頁面加載時捕獲它。

引薦來源網址(如果受支持)通常是調用相關頁面的頁面。 在您的情況下,您的functions.php是通過index.php (通過AJAX)調用的,因此,您的引薦來源網址為index.php而自己的網頁則為functions.php 從服務器的角度來看,請求的不是一頁,而是兩個單獨的頁面-它對AJAX或任何其他請求頁面的方法一無所知。

您想要做的完全不需要任何ajax-您所需要做的就是將代碼用於將引薦來源網址放入主index.php文件中。 如果(出於任何奇怪的原因)您需要在javascript中使用此信息,則可以從php文件中生成javascript:

if( isset($_POST['request_type']) &&  $_POST['request_type'] == 'get_page_info'){
    echo "<script type='text/javascript'>\n;
    echo "    var referer = '" . $_SERVER['HTTP_REFERER'] . ";\n";
    echo "    var landing = '" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . ";\n";
    echo "</script>\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM