我已經有這個錯誤好幾天了,我試過搜索這個錯誤,但是每當我搜索這個錯誤時,它給出了不同的錯誤原因,當我嘗試添加其他網站說它不起作用時,這就是為什么我在這里問,因為我看不到我還能做什么。
我試圖將一個變數從 JavaScript 傳遞給 PHP,但它不起作用,我不知道為什么。
這是我的 JavaScript 代碼:
<head>
<script type="text/javascript" src="jquery.js"> </script>
</head>
<script>
var variable = "hello";
console.log(variable);
$.ajax
({
url: "ajax.php",
type: "POST",
data:{pass : variable},
success: function() {
alert("Success");
}
});
</script>
這是我的PHP代碼:
$variable = $_POST['pass'];
echo($variable);
一切似乎都很完美。它將變數寫入控制臺,并顯示成功的警報。但是我收到一條錯誤訊息:'未定義的陣列鍵“通過”'
這是什么原因造成的?謝謝?
uj5u.com熱心網友回復:
您的前端代碼看起來不錯,但我不知道您的目標 PHP 環境,但也許您的環境不接受formData。
默認情況下,jQuery 將 ajax POST 資料作為formData發送。
嘗試以 JSON 格式發送資料
$.ajax({
url: "ajax.php",
type: "POST",
data: JSON.stringify({pass : variable}),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data){alert(data);},
});
然后你可能不得不調整你的 php 代碼:
$json = file_get_contents('php://input');
// Converts it into a PHP array
$data = json_decode($json, true);
$variable = $data['pass'];
echo($variable);
uj5u.com熱心網友回復:
您能否使用 chrome 瀏覽器中的開發人員工具來幫助您查找資料是否正確發送到 php 檔案。您也可以嘗試使用 $_REQUEST 而不是 post 來檢查 REQUEST 中的資料,因為它適用于 GET 和 POST。如果它仍然沒有幫助你。
你也可以請使用
data: {'pass':variable}
代替
data: {pass:variable}
請讓我知道這對你有沒有用。
uj5u.com熱心網友回復:
如果您在將資料發布到其中的 ajax.php 檔案中出現此錯誤,我說這是正常的,因為當您打開該檔案(ajax.php)時,就像沒有 $_POST['pass'] 因為您只是打開該檔案而不運行 JS 發送資料。如果你想接收你發送的資料,你可以這樣做:
你的 JS 代碼我稱之為檔案索引:
var variable = "hello";
$.ajax
({
url: "ajax.php",
type: "POST",
data:{pass : variable},
success: function(res) {
alert(res);
}
});
PHP 檔案:
$variable = $_POST['pass'];
echo($variable);
然后,如果您打開該索引檔案,在運行 JS 代碼后,它將將該發布資料發送到您的 PHP 檔案,并且您的 PHP 檔案將回顯該檔案,然后該值將存盤在該res變數中,當一切正常時,您可以請參閱res頁面(索引檔案)中的警報。
請注意,正如我所說,您不能單獨打開 PHP 檔案,因為它不會自行接收發布資料,未定義回傳是正常的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/446104.html
標籤:javascript php jQuery 阿贾克斯
