簡體   English   中英

PHP-使用Ajax / jQuery加載頁面-獲取母版頁URL

[英]PHP - Loaded Page with Ajax/jQuery - Get URL of master page

在我網站上的網頁(超過100個不同的頁面)上,我有以下代碼使用Ajax和jQuery加載和請求頁面。 調用此示例的頁面網址是products.phpfaqs.php

jQuery( document ).ready(function() {
    new Ajax.Request('dynamic-page.php', {
        method: 'POST',
        requestHeaders: { Accept: 'application/json' },
        onSuccess:function(transport) {
            var response = transport.responseText.evalJSON(true);
            // do something with response
        }.bind(this)
    });
});

現在在我的dynamic-page.php我有幾個條件語句,其中一個條件語句需要知道調用它的頁面是什么。

在dynamic-page.php中,我可以獲得路徑:

$path = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

可以理解的是,這為我提供了動態頁面的網址(即http:www.website.com/dynamic-page.php

我的問題在我的動態頁面中,是否可以通過使用PHP來獲取其父父頁面的URL /路徑? 我需要知道我的動態頁面中用戶所在的頁面是products.php還是faqs.php

如果您通過AJAX請求該頁面,則將其視為一個單獨的請求,因此,如果沒有額外的信息,我將看不到在服務器端如何知道。 但是,由於您是通過POST請求來請求頁面的,所以我認為最明顯的事情是在發出AJAX請求時將頁面的名稱放在POST變量中。 然后,您請求的頁面可以使用該信息來了解在什么情況下被請求。

您可能想嘗試將當前頁面的URL作為參數發送到Ajax調用。 嘗試這樣的事情,而不是:

jQuery( document ).ready(function() {
new Ajax.Request('dynamic-page.php', {
    method: 'POST',
    requestHeaders: { Accept: 'application/json' },
    parameters: {url: window.location.href},    //the URL of the Current Page incl. query strings
    onSuccess:function(transport) {
        var response = transport.responseText.evalJSON(true);
        // do something with response
    }.bind(this)
});

});

在端點PHP文件(在本例中為“ dynamic-page.php”)中,您可以執行以下操作:

<?php
    $originationURL = (isset($_POST['url']) && !empty($_POST['url'])) ? $_POST['url'] : "a-default-page.php";
    //Do whatever you wish with the *$originationURL* variable...
?>

如果您要通過AJAX調用發布其他數據(例如表單數據),請執行以下操作: 確保沒有一個參數被命名為url。

我希望這會有所幫助...我沒有測試代碼,但我認為這應該可以解決問題...

暫無
暫無

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

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