Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自ajax调用的未定义PHP输出_Php_Ajax_Tcpdf - Fatal编程技术网

来自ajax调用的未定义PHP输出

来自ajax调用的未定义PHP输出,php,ajax,tcpdf,Php,Ajax,Tcpdf,我希望通过ajax通过TCPDF创建一个PDF文件。一切都很完美,PDF保存在服务器中,我将URL传递给HTML $responseArray = array('id' => 'Success', 'message1' => 'Hello', 'message2' => '/pdfgen/genpdf/'.$filetitle.'.pdf'); $encoded = json_encode($responseArray); echo $encoded;

我希望通过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(response) {
        console.log(data);
        var id = response.id;   
        var message1 = response.message1;
        var message2 = response.message2;
        alert(message2 );
        });

将代码
response.id
response.message1
response.message2
替换为
data.id、data.message1和data.message2
。由于您在成功功能中使用了
数据

希望帮助:

$.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({
键入:“POST”,
url:“php路径”,
数据:({mob:mob}),
数据类型:“json”,

}).done(function(response){您将返回值作为数据,并尝试分配为response.id。使用数据更改响应:var id=data.id您必须如下设置头:头('Content-Type:application/json'));JS文件有错误,您必须使用data.id而不是response.idy您的回调有参数
data
,但您正在尝试使用
response
?@Sfili_81这都是响应,但我在试错过程中更改为数据。我现在统一了它,但仍然存在相同的问题。@Raminrezadeh我试图设置头,但后来遇到了另一个问题er问题表示您无法再次发送标题,因为TCPDF通过静态文件发送标题请使用适当的标签格式化您的答案。并解释您的答案如何帮助遇到相同问题的用户。请解释此答案如何解决您的问题
$.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); 
    }
});