簡體   English   中英

無法 POST 成功的 ajax 請求

[英]cannot POST successful ajax request

我的存儲庫中有 2 個文件,我想將 index.php 中的 js 變量傳遞給 php 腳本 validate.php。 我的存儲庫的結構:

  • 索引/索引。 php
  • pdf/validate.php

index.php 中的代碼:

<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
The content of the document......
<script type="text/javascript">

var name = "virginia"
//console.log(name)

$.ajax({
    url: "../pdf/validate.php", 
    method: "post", 
    data: name, 
    success: function(res) {
        console.log(name)
        console.log("pass js variable to php: success")
    }

});  

// open localhost/index.php
// open F12 developer console, you will find 'virginia' was passed to validate.php, because it console-prints "pass js variable to php: success". 

</script>
</body>
</html>

ajax 請求成功驗證。php。 但是,轉到 validate.php,我有:

<?php 
$var1 = $_POST['name']; 
echo($var1); 
?>

如果我在本地主機中打開 validate.php,我會收到錯誤消息:注意:未定義的索引:名稱。

為什么?

ajax 請求驗證成功。php

沒那么成功。

您尚未正確格式化數據以供 PHP 解析它。

您應該將帶有name屬性的 object 傳遞給數據。

data: { name }, 

如果您使用console.log檢查res而不是name ,您可能會說它當前失敗。


如果我在本地主機中打開 validate.php,我會收到錯誤消息:注意:未定義的索引:名稱。

通過在瀏覽器中鍵入 URL,您將發出一個的 GET 請求,該請求與您之前使用 JavaScript 發出的 POST 請求完全無關。

第一個請求的 POST 數據在第二個請求中不存在。


如果您希望數據在請求之間持久存在,那么您需要將其存儲在某個地方(例如 session 或數據庫)並添加邏輯來區分設置和檢索數據(例如,關閉請求是 POST 或 GET)。

暫無
暫無

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

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