ajax调用返回JSON ParseError即使认为JSON看起来是正确的
jQuery .ajax Call Returns JSON ParseError Even Thought JSON Appears to be Correct?
尽管我的JSON在jsonlint.com上进行了验证,但我还是收到了ParseError。
这是jQuery代码:
$.ajax({
url: path,
type: 'GET',
data: {},
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
var a = 'breakpoint here doesn't activate';
},
error: function (x, y, z) {
var b = 'code execution stops at a breakpoint here.';
}
});
以下是正在调用的PHP代码:
function getAllAnswersToHitViaAjax($theJobName) {
$testData[0] = 'testing123';
$encodedData = json_encode($testData);
echo $encodedData;
return;
}
这又回到了我的.ajax调用的error:函数中设置的断点。参数Y设置为"parseerror",x.responseText=
["testing123"]
到目前为止,我已经研究了好几个小时了。我看过许多相关的StackOverflow帖子,但没有一个能在这种情况下工作的解决方案。
如何从这个.ajax调用中获得成功响应?
提前非常感谢所有人提供任何信息。
您的代码没有明显的问题,当我在本地机器上尝试时,它运行良好。然而,你上面的评论是一个很大的线索:
我只是查看了Safari控制台中的z参数,发现:"undefined不是一个函数(评估'JSON.parse(a+")')"这怎么会发生?
如果某个地方的某些代码使用"JSON"作为全局变量名,从而隐藏内置窗口,则可能会发生这种情况。JSON对象。
检查php代码中的Notice或Warning,如果有,请删除它们,然后重试。跳吧,这对你有帮助。
JavaScript允许字符串使用单引号或双引号,但JSON仅允许使用双引号。看见http://www.json.org/
另请参阅jQuery.parseJSON单引号与双引号
只需使用
function getAllAnswersToHitViaAjax($theJobName) {
$testData[0] = 'testing123';
echo json_encode($testData);
}
然后在你的AJAX你可以做
$.ajax({
url: path,
type: 'GET',
dataType: 'json'
success: function(data){
for (var i = 0; i < data.length; i++) {
//DO YOUR STUFF
}
}
});
请使用
$.ajax({
url: path,
type: 'GET',
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
var a = 'breakpoint here doesn''t activate';
},
error: function (x, y, z) {
var b = 'code execution stops at a breakpoint here.';
}
});
并在您的PHP代码中粘贴此代码。
function getAllAnswersToHitViaAjax($theJobName) {
$testData[0] = 'testing123';
$encodedData = $testData;
echo json_encode($encodedData);
exit;
}
可能是在你的代码中挖掘了更多之后,我认为在你的PHP代码中你没有正确地传递数据。请使用exit或die方法将数据传递回ajax。请检查。
Try with the below code,
function getAllAnswersToHitViaAjax($theJobName) {
$testData[0] = 'testing123';
echo json_encode($testData);
die();
}
$.ajax({
url: path,
type: 'GET',
dataType: 'json'
success: function(data){
console.log(data);
var result = JSON.parse(data);
console.log(result);
}
});
相关文章:
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 如何使删除线看起来像x
- Twitter Bootstrap 2.1.0子菜单在Responsive上看起来很混乱
- 用javascript创建一个看起来正常分布的模式
- PHP函数的返回看起来如何对AJAX和PHP有效
- 如何使Codeschools棱角分明的一面看起来相似
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- 未捕获的语法错误:意外的令牌非法?看起来不错
- NodeJS readline有时会打印回第一个输入行(但并不总是,看起来是随机的)
- 如何检查html是否看起来'空'
- 看起来第一个console.log是'It’不太对
- 使用 CSS 或 javascript/jQuery,我会使用哪种方法来使我的网站的导航栏看起来更 3d-ish
- 如何使用CSS或JQuery使整个网页看起来更小(就像Chrome的缩小功能一样)
- ajax调用返回JSON ParseError即使认为JSON看起来是正确的
- 在保存到本地存储之前,如何修改我得到的 json 响应以使其看起来像这样
- 如何过滤一些看起来非常复杂的JSON数据并将其用于传单.js中的标记
- 当我提供的JSON看起来有效时,Datatable返回表中没有可用的数据
- AngularJS json多维数组看起来不像它应该的样子
- 这两个JSON对象有区别吗,看起来没有,但是
- 解析后的JSON的console.log返回未定义,但在解析前看起来不错