如何在ColdFusion处理页面中访问jQuery.post传递的值?
解决jQuery.post向ColdFusion传递参数无法访问的问题
常见原因及处理方法:
先确认前端数据是否正确发送
在jQuery.post调用前,先打印要传递的参数,确保thisType和thisID不是undefined或空值:console.log({type:thisType, recordId:thisID}); jQuery.post("myPage.cfm", {type:thisType, recordId:thisID}, ...);常规表单编码请求(默认情况)
jQuery.post默认用application/x-www-form-urlencoded格式发送数据,ColdFusion应该能自动解析到form作用域。如果还是找不到参数,用getHttpRequestData()查看原始请求内容,确认参数是否真的到达后端:<cfset reqData = getHttpRequestData()> <cfdump var="#reqData.content#"> <!--- 查看实际传递的参数串 --->要是这里能看到
type=xxx&recordId=xxx,那直接用form.type和form.recordId就能访问;如果看不到,说明前端参数没传对,回头检查变量赋值。JSON格式请求(特殊情况)
如果前端手动设置了contentType: 'application/json',或者传递的是JSON字符串,ColdFusion的form作用域无法解析这种请求体,需要手动解析:<cfset reqContent = getHttpRequestData().content> <cfset postData = deserializeJSON(reqContent)> <!--- 访问参数 ---> <cfoutput>类型:#postData.type#,记录ID:#postData.recordId#</cfoutput>
内容的提问来源于stack exchange,提问作者Cmaso
相关产品推荐
相关产品推荐

