[英]HTTP response status is 200, but no response shows
我有這個簡單的代碼可以從我的 sql 表中獲取值列表,並將它們顯示在我的<select>
下拉列表中。
我的html :
<select class="form-select" id="sel1" name="sel1" style="width: 7em;"></select>
我的Javascript :
const from = document.getElementById("sel1");
from.addEventListener("click",function(){
let $select = $("#sel1");
$.ajax({
url: '/paydetails_server.php',
type: 'POST',
data: { "input": "from_periods" },
dataType: 'json',
cache:false,
success: function(response) {
//console.log(response);
response.sort();
let selectedValue = $select.val();
let html = response.filter((e, i, a) => a.indexOf(e) === i).map(item => `<option value="${item}">${item}</option>`);
$select.html(html).val(selectedValue);
},
complete: function() {}
});
})
我的PHP :
if(isset($_POST["input"])){
if(!$connection)
echo "Connection to database failed! Please try again";
else{
$periods=array();
$sql = "SELECT DISTINCT `YEARMM` from `emp_pp`";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if((!str_contains($row["YEARMM"],"S"))&&(!str_contains($row["YEARMM"],"B")))
array_push($periods,$row["YEARMM"]);
}
echo json_encode($periods);
}
}
}
現在,當我在localhost
XAMPP 服務器中執行代碼時,它運行良好。 但令人驚訝的是,它在我的實時服務器中不起作用。 我已經仔細檢查了所有內容,包括主機、服務器名稱、數據庫名稱等變量。
我嘗試在“網絡”選項卡中檢查錯誤,但得到的只是響應狀態 200。即使我嘗試了console.log(response)
,控制台中也沒有顯示任何內容。 為什么相同的代碼在本地服務器中工作而不是在現場? 請幫我。
由於某種原因,語句if((,str_contains($row["YEARMM"],"S"))&&(!str_contains($row["YEARMM"],"B")))
導致了這個問題,雖然,它在localhost
中運行良好。
檢查你得到的表單數據庫,str_contains 只驗證結果是否包含字母 S 或 B
當您告訴 jQuery 將數據解析為 JSON 時,它將運行success
function 僅在以下情況下:
在您的 PHP 中,您在while
循環中有echo json_encode($periods)
。
如果有多個值被循環,那么您有多個 JSON 文本混合在一起 - 這不是有效的 JSON。
如果有零個條目被循環,那么您就沒有 JSON — 這不是有效的 JSON。
移動echo json_encode($periods);
語句,所以它在while
循環之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.