来自ajax调用的未定义PHP输出
我希望通过ajax通过TCPDF创建一个PDF文件。一切都很完美,PDF保存在服务器中,我将URL传递给HTML来自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;
$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);
}
});