簡體   English   中英

javascript發布到.php文件一台服務器不起作用 - 在瀏覽器中手動輸入URL到相同的.php工作

[英]javascript post to .php file one server does not work - manual entry of URL in browser to same .php works

我有一些問題,了解如何轉移javascript(客戶端)變量,所以他們可以從PHP(服務器端)訪問作為會話: 在PHP中獲取iframe的“src”值?

現在我處於一種情況,我使用firebug嘗試調試正在進行的,但它只是沒有意義:

我有這個功能來更新iframe,我想傳遞iframe正在顯示的頁面:

function frameclick(pageurl)
 {
        $.post("session_write.php?",
    {
            frameurl : pageurl             
    }

    $("#iFrame1").attr('src', pageurl);
    console.log  ('<?php echo "logout:".$langpath.$_SESSION['frameurl'];?>');
 }

pageurl是ex。 “/lang/en/new.htm” - 如果我用firebug檢查它,我也可以看到它說它正確傳遞它(也轉換為/)。

我發布的腳本服務器端是這樣的:

#session_write.php
<?php
session_start();
print_r($_GET['frameurl']);
if (isset($_GET['frameurl'])) 
{
$_SESSION['frameurl'] = $_GET['frameurl'];
print_r($_SESSION);
}
?>

發布到服務器上的PHP腳本將通過javascropt失敗 - $ _SESSION ['frameurl']將是'',但如果我是ex。 像這樣手動執行:(http):

//localhost/phpmenu/session_write.php?frameurl=lang%2Fen%2Fnew.htm

然后它將在$ _SESSION [“frameurl”]變量中正確設置。

我簡直無法理解在javascript帖子和在瀏覽器中手動執行它之間有什么不同以及為什么它會導致我這個問題?

有想法的人嗎? 謝謝

您正在使用.post執行POST請求,但是當您在地址欄中鍵入URL時,這是一個GET請求。

$_GET檢索通過GET傳遞的任何參數,而$_POST檢索通過POST傳遞的任何參數。 因此,如果您使用.post與Javascript但嘗試使用PHP中的$_GET進行檢索,則無效。

將變量POST到PHP文件時,未設置$_GET 請改用$_POST['frameurl'] 此外,看起來你在frameclick中錯過了一個關閉frameclick來結束post調用。

您正在通過POST請求傳遞數據並檢索所有GET請求。 請改用$_POST 您可能也對$_REQUEST感興趣

暫無
暫無

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

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