簡體   English   中英

來自 php 對 AJAX 調用的 JSON 響應

[英]JSON response from php on AJAX call

我正在從 Java 腳本執行 ajax 調用,並且我試圖從 php 獲取 json 響應,如果我將 dataType 設置為 JSON,如果沒有執行成功塊,則會執行 ajax 錯誤塊,如果我嘗試 console.log,則不指定 dataType成功塊中的響應我什么也沒得到

JS

let CurrentDate = Date();
console.log(CurrentDate);

jsonObject = {
   'TrackName' : 'Material Science',
    'TrackDesc' : 'Test Text Test Text Test Text Test Text Test Text Test Text Test Text ',
    'Timestamp' : CurrentDate
}
console.log(jsonObject);
$.ajax({
    type:'post',
    url:'../../../../PHP/adminScripts/addNewTrack.php',
    contentType: "application/json",
    data: {trackDetails:jsonObject},
    dataType: "json",
    success: function(response) {
        console.log('SUCCESS BLOCK');
        console.log(response);
    },
    error: function(response) {
        console.log('ERROR BLOCK');
        console.log(response);
    }
});

PHP

<?php
header('Content-type: application/json');
include('../connection.php');

if($_POST) {
$obj = $_POST['trackDetails'];

$TrackName = mysql_real_escape_string($obj['TrackName']);
$TrackDesc = mysql_real_escape_string($obj['TrackDesc']);
$TrackAdderID = 'Admin ';                  //$_SESSION["userID"];
$Timestamp = mysql_real_escape_string($obj['Timestamp']);

$response_array['status'] = 'status123';
echo json_encode($response_array);

請幫我弄清楚如何在 PHP 中獲得對 ajax 調用的 json 響應

  • 在您的 JS 文件中,刪除contentType: "application/json",
  • 在您的 php 文件中,選中“包含文件 url”和
  • 關閉 if 語句塊正確

JS文件:

let CurrentDate = Date();
jsonObject = {
   'TrackName' : 'Material Science',
    'TrackDesc' : 'Test Text Test Text Test Text Test Text Test Text Test Text Test Text ',
    'Timestamp' : CurrentDate
}
$.ajax({
    type:'post',
    url:'addNewTrack.php',
    data: {trackDetails:jsonObject},
    dataType: "json",
    success: function(response) {
        console.log('SUCCESS BLOCK');
        console.log(response);
    },
    error: function(response) {
        console.log('ERROR BLOCK');
        console.log(response);
    }
});

PHP文件:

<?php
    header('Content-type: application/json');
    include('../connection.php');

    if($_POST) {
        $obj = $_POST['trackDetails'];

        $TrackName = mysql_real_escape_string($obj['TrackName']);
        $TrackDesc = mysql_real_escape_string($obj['TrackDesc']);
        $TrackAdderID = 'Admin ';                  //$_SESSION["userID"];
        $Timestamp = mysql_real_escape_string($obj['Timestamp']);

        $response_array['status'] = 'status123';
        echo json_encode($response_array);
    }
?>

從您的 JS 代碼中刪除contentType: "application/json" ,並在 PHP 文件中正確關閉大括號,它會正常工作。

您可以使用 json_encode() 函數將 PHP 數組轉換為 JSON 格式並作為響應返回。 發送 AJAX 請求時設置 dataType: 'JSON'。

暫無
暫無

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

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