[英]json_encode to send data back to js
我正在创建一个简单的上传脚本。 我使用一种简单的形式让人们上传图片,然后外部php脚本将上传图片并将一些变量返回到上传页面。
但是我无法让一部分的var恢复正常工作。 当前即时通讯使用此:
该页面还包含以下形式:
form_data.append('file', file_data);
$.ajax({
url: 'upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(response){
document.getElementById("titel" + amount).innerHTML = response['naam'];
});
上传页面应返回一些数据:
echo json_encode(array('naam'=>$naam));
此脚本返回未定义的。
如果我在表单页面上回复后删除了['naam'],它将打印出:{“ naam”:“ test.png”}
希望有人知道我做错了什么。 提前感谢!
你说:
dataType: 'text', // what to expect back from the PHP script, if anything
…因此jQuery将忽略服务器要求的数据(似乎是HTML,因为您没有更改PHP中的Content-Type标头),并像处理纯文本一样处理响应。
因此, response
将是纯文本字符串,而不是解析JSON的结果。
将dataType
更改为"json"
。
您从服务器获得的响应是string
。 要将其用作对象,您需要使用JSON.parse()
将其解析为JSON格式。
var obj = JSON.parse(response);
然后,您可以使用:
obj.naam;
从对象中获取naam
的值。
请将数据类型从“文本”更改为“ json”,然后使用JSON.parse(//返回值“)解析该JSON。
Var jsonObject = JSON.parse(“ Ajax响应对象”); 然后使用它jsonObject.keyName,它将返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.