JSON响应的问题,结果对象的属性被读取为未定义,但我可以看到它存在
Issue with JSON response, property of resultant object is being read as undefined but I can see it exists
我有一个json响应,它是从一个表单的ajax请求中获得的。响应存储在一个名为response
的变量中,如下所示:
{
data: {
attributes:{
//list of key-values
}
id: null,
type: "job"
},
links: {
modal: "/client/render/modals/job/success"
},
message: "job successfully created",
success: "ActionSuccess"
}
问题是当我尝试做:
response.links.modal
或
response['links']['modal']
我得到这个错误:
Uncaught TypeError: Cannot read property 'modal' of undefined
为什么它似乎认为链接不存在,当我可以看到它在JSON响应(我可以看到它存在于响应的预览(使用chrome))。
编辑:发出ajax请求的代码:function submit_form (request,method,data,type,target) {
switch(type){
case 'modal':
$('#' + target).openModal();
break;
case 'target':
break;
case 'page':
break
}
$.ajax({
url: request,
type: method,
data: data,
success: function(response){
submit_callback(response,type,target)
}
})
}
回调:function submit_callback(response,type,target) {
switch(type){
case 'modal':
console.log(response) //shows that links exists
console.log(response.links) //logs out as undefined
post_page(response.links.modal,response.message,target)
break;
case 'target':
change_target(response,target);
setUpPageElements();
break
case 'page':
('body').html(response)
break;
}
}
编辑:使用JSON后的响应。对其进行字符串化:
"{'"message'":'"job successfully created'",'"success'":'"ActionSuccess'",'"data'":{'"attributes'":'"//list of key-values'"},'"type'":'"job'",'"id'":null},'"links'":{'"modal'":'"/client/render/modals/job/success'"}}"
仅供参考,属性确实存在,但不是解决这个问题所必需的,所以我已经删除了它们,它们实际上并没有说'"//list of key-values'"
。
好的,原来问题不在前端,而是在后端;由于某种原因,它没有返回json响应,而是作为文本,在摆弄代码后,我修复了这个问题,它现在返回json作为json而不是json字符串。
记住,孩子们,始终确保服务器返回正确的类型!
相关文章:
- 无法读取属性'编译'的未定义.可以'我似乎没有发现错误
- 我可以't克服这个错误“;未定义的局部变量或方法`f'"任何原因
- Chained Promise给出了未定义的函数错误,但我可以单独执行这些函数
- 为什么在业力中,当我将假数组传递给函数时,我返回未定义
- 为什么我得到未定义的输出Javascript
- 变量在 iPad 上可以未定义与在我的浏览器中定义的原因
- 使用 Labjs,我收到“$ 未定义”错误,但 js 仍然有效,不确定为什么:(
- 为什么我被未定义不是一个函数,ReactJs
- addEventListener 使用 for 循环给了我一个未定义的结果
- 在 Jquery 中,如何向 JSON 对象的一部分发出警报?我得到“未定义”
- 为什么当我将变量记录到控制台时,我得到了输出,但是当我返回它时,我收到“未定义”
- 我可以自定义谷歌地图这样
- Ajax 调用给了我一个未定义 - 未定义的错误
- 为什么我'm得到未定义的对象和我如何用NodeJs解析json数据
- JSON对象被正确解析,但我得到未定义时,试图在JSON中搜索,而不只是调用它作为一个整体
- 检索元素的类名和 id 时,我总是未定义
- 我可以自定义“脚本”标签 WebPack 插入吗?
- 为什么我得到未定义的变量
- 为什么我得到未定义错误的属性
- 提示询问所需的行数.为什么我得到“未定义”在每一行的末尾