Php jquery不需要json_编码
我的问题是jquery不需要我的json 以下是我的jquery代码:Php jquery不需要json_编码,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我的问题是jquery不需要我的json 以下是我的jquery代码: $.ajax({ type: "POST", url: "js/resize.php", data: data, success: function(data) { /* works var data = [ {"og_src":"img\
$.ajax({
type: "POST",
url: "js/resize.php",
data: data,
success: function(data) {
/* works
var data = [
{"og_src":"img\/base\/logo.png","src":"img\/base\/das-logo.png"},
{"og_src":"\/img\/studio\/lounge-2.JPG","src":"\/img\/studio\/lounge-2.JPG"},
{"og_src":"\/img\/studio\/desk.JPG","src":"\/img\/studio\/desk.JPG"}
];
*/
// console.log(data);
$.each(data, function(key, image){
console.log(image);
var el = $("img[rel='"+image.og_src+"']");
...
如果我将发送的数据复制到脚本中,并生成一个var data=。。。它很好用
php数据由一个简单的echo json_encode($stack)生成
如果我做一个php回音,比如
echo '[{"og_src":"img\/base\/logo.png","src":"img\/base\/das-logo.png"}, {"og_src":"\/img\/studio\/lounge-2.JPG","src":"\/img\/studio\/lounge-2.JPG"}, {"og_src":"\/img\/studio\/desk.JPG","src":"\/img\/studio\/desk.JPG"}]';
它不起作用
所有文件都在UTF-8上
Console.log显示Console.log的结果(图像);作为一封信;
怎么了,我已经试了好几个小时了,我非常绝望。
提前感谢您的帮助。看起来您的JSON被解释为HTML(因此,当您运行它的每个时,它会在HTML源代码的每个字符上循环) 确保您的PHP脚本说它正在输出JSON(PHP默认为HTML)
您还可以将
数据类型:“json”
选项传递给ajax
,这样jQuery库将尝试将HTTP请求的结果解析为json,而不管服务器说它是什么。不过,在HTTP响应中包含正确的信息是一个更干净的解决方案。看起来您的JSON被解释为HTML(因此,当您运行它的每个时,它会在HTML源代码的每个字符上循环)
确保您的PHP脚本说它正在输出JSON(PHP默认为HTML)
您还可以将
数据类型:“json”
选项传递给ajax
,这样jQuery库将尝试将HTTP请求的结果解析为json,而不管服务器说它是什么。不过,在HTTP响应中包含正确的信息是一个更干净的解决方案。您应该告诉jQuery,使用dataType属性返回的数据应该是“json”:
$.ajax({
type: "POST",
url: "js/resize.php",
data: data,
dataType: 'json',
success: function(data) {
}
});
您应该使用dataType属性告诉jQuery,返回的数据应该是“json”:
$.ajax({
type: "POST",
url: "js/resize.php",
data: data,
dataType: 'json',
success: function(data) {
}
});
您可以尝试指定
数据类型:“json”
。Thx Jack,我做了几次,都没有指定数据类型:“json”。而且一直都是正确的。我现在加上去了。而且效果很好。我不知道它过去为什么会起作用,但这是我的解决方案。然后你缺少了昆汀提到的正确的内容类型
响应头。你可以尝试指定数据类型:'json'
。Thx Jack,我做了几次,都没有指定数据类型:'json'。而且一直都是正确的。我现在加上去了。而且效果很好。我不知道为什么它在过去有效,但这是我的解决方案。然后,您缺少了昆汀提到的正确的内容类型
响应头。thx昆汀数据类型:“json”适合我。我试图找出它过去为什么有效。根据你的建议,我得到了同样的结果。echo json_编码($stack);标题(“内容类型:application/json”);但肯定是错误的,因为console.log仍将结果解释为html。所以我们走对了。您必须在HTTP主体之前输出HTTP头。当你这样做的时候,你应该会收到错误消息;如果我以另一种方式执行此操作,则会收到错误消息header Cannot modify header information(标题无法修改标题信息)-标题已由我发送:是bom问题。Thanksthx Quentin数据类型:“json”适合我。我试图找出它过去为什么有效。根据你的建议,我得到了同样的结果。echo json_编码($stack);标题(“内容类型:application/json”);但肯定是错误的,因为console.log仍将结果解释为html。所以我们走对了。您必须在HTTP主体之前输出HTTP头。当你这样做的时候,你应该会收到错误消息;如果我以另一种方式执行此操作,则会收到错误消息header Cannot modify header information(标题无法修改标题信息)-标题已由我发送:是bom问题。谢谢