【问题标题】:JSON response from php on AJAX callphp 对 AJAX 调用的 JSON 响应
【发布时间】:2017-10-07 11:48:17
【问题描述】:

我正在从 java 脚本执行 ajax 调用,并且我试图从 php 获取 json 响应,如果我将 dataType 设置为 JSON,如果未执行成功块,则将执行 ajax 错误块,如果我尝试不指定 dataType console.log 成功块中的响应我什么也没得到 ​​p>

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);

请帮我弄清楚如何让 json 响应 PHP 中的 ajax 调用

【问题讨论】:

  • 您确定您调用的 URL 正确吗'../../../../PHP/adminScripts/addNewTrack.php'
  • 任何控制台错误?
  • 你可以尝试删除ajax中的contentType然后有dataType : "json",encode:true,然后删除php中的标题

标签: javascript php jquery json ajax


【解决方案1】:
  • 在您的 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);
    }
?>

【讨论】:

    【解决方案2】:

    从你的JS代码中删除contentType: "application/json",并在PHP文件中正确关闭大括号,它会正常工作。

    【讨论】:

      【解决方案3】:

      您可以使用 json_encode() 函数将 PHP 数组转换为 JSON 格式并作为响应返回。发送 AJAX 请求时设置 dataType: 'JSON'。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多