javascript - 使用 php 编码变量调试不可见的 JSON 错误,使用 jQuery 解析

标签 javascript php jquery json

我正在使用 php json_encode 向客户端发送一堆值,其中 jquery

{"data":{"application":{"basics":{"email":"jepp@mily.com","name_first":"Step","name_last":"Bob","phone":"9210938102938","occupation":"unemployed","website":"wwwcom"},"application":{"title":"Default title","guid":"9as8ua9sd8ua9sdu","language":"sv"},"job":{"title":"joburl","url":"joburl"},"letter":{"letter":"abadbabkbakbakbakbakbakbabk"},"work-experiences":[{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"},{"title":"Default WORK Experience Title","url":"wwwsscom","date_from":"1970-01-01","date_to":"1999-12-31"}],"educations":{"title":"Default Education","url":"ixi","date_from":"1970-01-01","date_to":"1999-12-31"},"skills":{"title":"Defailt SKILL","url":"wwwsdcom","date_from":"ixi","date_to":"ixi"},"work-samples":{"title":"A sample of my work","url":"wwwsdcom","date_from":"ixi","date_to":"1999-12-31"}}},"error":[],"warning":[]}

如果我尝试在脚本中使用 $.parseJSON 解析它,我没有得到任何对象。但是,如果我将它直接复制/粘贴到控制台中(并在开头和结尾添加 '),它就可以工作。没有错误代码,我也看不到换行符。 JSON lint-tools 不返回任何错误...

我已经设置了正确的内容类型并尝试了 jquery 提供的不同的 json 解析器。

我错过了什么?


代码是从 jQuery 教程中剪切/粘贴的。我尝试了一些不同的例子,但都失败了。

var jqxhr = $.getJSON( "application_controller.php", function() {
    console.log( "success" );
})
.done(function() {
    console.log( "second success" );
})
.fail(function() {
    console.log( "error" );
})
.always(function(data) {
    console.log( "complete" );
    application = data;  
});

// Perform other work here ...

// Set another completion function for the request above
jqxhr.complete(function() {
    console.log( "second complete" );
});
});

是真的,我在控制台解码了。这是在脚本中执行的代码片段(它也不起作用):

$.ajax({
  dataType: "json",
  contentType: "application/json",
  url: 'application_controller.php',
  data: '{id:id}',
  success: function( data ) {
        application = data.responseText;
        application = $.parseJSON(application);/* < string */     
    },
    fail: console.log("fail"),
    complete: function(data) {
        console.log(data.responseText);
        application = data.responseText;
    }
});

最佳答案

回答我自己的问题:

为了解决这个错误,我不得不将我所有的 php 文件从“utf8”编码更改为“没有 BOM 的 utf8”。然后它起作用了。

当包含一个没有 utf8 编码的文件时(当然在层次结构中很低)它会污染所有其他文件并损坏输出。

关于javascript - 使用 php 编码变量调试不可见的 JSON 错误,使用 jQuery 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20722579/

相关文章:

javascript - Eclipse 中的 Javascript 资源有什么好处?

javascript - 使用 jquery 创建嵌套的 json 对象

javascript - 使用Javascript生成Rails文本数组

javascript - 更改服务中的数据

php - 使用 PHP/MySQL 的常见问题解答/知识库需要添加 "This answer helped"

javascript - 执行 imap_close 不工作

jquery - 在提交警报时选择标签

php - 如何使用 php 将不同的 css 添加到最后一个 mysql 查询结果

javascript - 内容可编辑无检测图像

jquery PageMethod 说该方法不存在