所以我目前有一个设置,当用户单击链接时,链接的 ID 通过 AJAX 发送到 Coldfusion 页面,该页面使用它来进行查询并返回对象。
jquery 函数如下所示:
$(".thelink").click(function(){
var link_id = $(this).attr("id");
var postData ={
link_id: link_id,
}
$.ajax({
type: "post",
url: "includes/query.cfm",
contentType: "application/json",
data:JSON.stringify(postData),
datatype: "json",
success: function(data){
$("#derpaderp").html(data.DATA.NAME);
}
})
})
它将数据发送到 CFM 文件,该文件执行查询并生成单行数据。然后我使用
<CFOUTPUT>#SerializeJSON(myQuery, true)#</CFOUTPUT>
返回数据。这一切都工作正常,我可以在开发人员工具中看到这一点:
现在,如果您回顾一下 AJAX 函数,在“成功”下,我基本上尝试访问 DATA 对象中的值,正如您在图像中看到的那样,我收到错误“data .DATA”未定义。
如何获取 DATA 对象中项目的值(名称、visible_url、landing_url 等)的任何想法
谢谢!
<小时/>Vlad 的回答解决了上述问题,但还有一个后续问题:
如果我需要像这样对 CFM 文件进行另一个查询:
<CFOUTPUT>
<cfset object0 = RemoveChars(#SerializeJSON(query1, true)#, 1, 2) >
<cfset object1 = RemoveChars(#SerializeJSON(query2, true)#, 1, 2) >
#object0#
#object1#
</CFOUTPUT>
它给了我一个像这样的 JSON 响应
我仍然需要从 DATA 对象获取信息,但是现在有两个,如上图所示
我正在尝试这个
$.ajax({
type: "post",
url: "includes/query.cfm",
contentType: "application/json",
data:JSON.stringify(postData),
datatype: "json",
success: function(data){
var pdata = $.parseJSON(data[0]);
console.log(pdata);
}
})
基于 Vlad 对原始问题的回答,但它抛出了一个错误。
最佳答案
在您的成功函数中,您可以添加 parseJson功能。您可以使用console.log来检查您想要的其他值。
$.ajax({
type: "post",
url: "includes/query.cfm",
contentType: "application/json",
data:JSON.stringify(postData),
datatype: "json",
success: function(data){
var pdata = $.parseJSON(data);
console.log(pdata.DATA.VISIBLE_URL)
//$("#derpaderp").html(pdata.DATA.VISIBLE_URL);
}
})
关于jquery - 从通过 ajax 请求传递的 jquery 对象获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35588583/