ajax 调用的未定义 PHP 输出

Undefined PHP output from ajax call

我希望通过 ajax 通过 TCPDF 创建 PDF 文件。一切正常,PDF 保存在服务器中我将 URL 传递给我的 HTML

$responseArray = array('id' => 'Success', 'message1' => 'Hello', 'message2' => '/pdfgen/genpdf/'.$filetitle.'.pdf');
$encoded = json_encode($responseArray);             echo $encoded;

然后我得到重定向。问题是虽然我的浏览器控制台选项卡显示 PHP 已发送的内容是

{"id":"Success","message1":"Hello","message2":"/pdfgen/genpdf/1703419677.pdf"}

返回 HTML 文件,我无法将 URL 分配给变量。

它只是打印未定义。

$.ajax({
    type: 'POST',
    url: "path to php",
    data: ({mob: mob}),
    dataType: 'json',
}).done(function(data) {
    console.log(data);
    var id = data.id;   
    var message1 = data.message1;
    var message2 = data.message2;
});

只需用响应替换数据

$.ajax({
        type: 'POST',
        url    : "path to php",
        data: ({mob: mob}),
        dataType: 'json',
        })
.done(function(response) {
        console.log(data);
        var id = response.id;   
        var message1 = response.message1;
        var message2 = response.message2;
        alert(message2 );
        });

将代码 response.idresponse.message1response.message2 替换为
data.id, data.message1 and data.message2。因为您在成功函数

中使用了 data

希望得到帮助:

$.ajax({
    type: 'POST',
    url: "path to php",
    data: ({mob: mob}),
    dataType: 'json',
}).done(function(response) { <-- edit
    console.log(response); <-- edit
    var id = response.id;   
    var message1 = response.message1;
    var message2 = response.message2;
    alert(message2);
});
$.ajax({
    url: 'path to php',
    type: 'post',
    data: {mob: mob},
    dataType: 'json',
    success: function(response) {
        console.log(response); 
    }
});