簡體   English   中英

jQuery load()函數不起作用

[英]jQuery load() function not working

知道為什么這段代碼:

$('body').on('click', 'a.friend' , function(e){
    e.preventDefault();
    overlayerOn();
    var $uid = $(this).attr("href");
    var $br = $('#board');
    $br.css('display', 'block');
    $('#board').load("messages.php?uid=" + $uid);
});

在... php?uid =中沒有發送任何內容?

這是php腳本(但到目前為止,什么也沒有嘗試接收變量):

$id = $_REQUEST['uid'];

echo "<div id='hovno'>" . $id . "</div>";

而且每次我只收到空的div標簽。

但是當這樣的時候:

$('body').on('click', 'a.friend' , function(e){
    e.preventDefault();
    overlayerOn();
    var $uid = $(this).attr("href");
    var $br = $('#board');
    $br.css('display', 'block');
    $('#board').text($uid);
    });

它打印出實際的正確值。 為什么它不能通過? 謝謝

您的變量$uid包含href,它可能是某種URI。 在將其發送到PHP之前對其進行編碼,以便可以從$_GET正確檢索它。

$('body').on('click', 'a.friend' , function(e){
  e.preventDefault();
  overlayerOn();
  var $uid = $(this).attr("href");
  var $br = $('#board');
  $br.css('display', 'block');

  // Send the encoded URI to PHP.
  $('#board').load("messages.php?uid=" + encodeURIComponent($uid));
});

更新資料

在看到PHP發布之后,我將添加一下,當您將值直接從HTTP請求傳遞到PHP輸出時,應該避免跨站點腳本攻擊。

$id = $_REQUEST['uid'];
echo "<div id='hovno'>" . htmlspecialchars($id) . "</div>";

為什么不將$uid放在.load()的數據選項中?

$('#board').load("messages.php", { 'uid': $uid } );

在您的PHP腳本中使用$_POST['uid']來接收數據...

暫無
暫無

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

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