gpt4 book ai didi

javascript - 调用 Coldfusion 组件函数的 jQuery post 方法不起作用

转载 作者:行者123 更新时间:2023-11-29 14:45:17 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery 的 post() 方法通过 ajax 调用 cfc 方法,但我不断收到一条错误消息,指出“yyy 函数的 xxx 参数是必需的,但未传入”。这是我的 cfc 函数:

<cffunction name="updateAssessment" returntype="struct" returnformat="json" access="remote" hint="For ajax update of a single assessment record">
<cfargument name="data" type="JSON" required="true" hint="Data structure received from ajax call">

<cfset var incomingData = "" />
<cfset var qry = "" />
<cfset var resultset = {success:false,message:"invalid data"}>

<cfif IsJSON(arguments.data)>
<cfset incomingData = deserializeJSON(arguments.data) />
</cfif>

<cfreturn resultset />
</cffunction>

这是调用它的 jQuery 代码:

$('.ajaxSubmitBtn').on('click', function() {

//grab values from editable table cells...
var assessmentid = $.trim($(this).closest('tr').find('.ajaxSubmitBtn').val());
var source = $.trim($(this).closest('tr').find('.sourceTD').text());
var lname = $.trim($(this).closest('tr').find('.lnameTD').text());
var fname = $.trim($(this).closest('tr').find('.fnameTD').text());
var ssn = $.trim($(this).closest('tr').find('.ssnTD').text());
var assessdate = $.trim($(this).closest('tr').find('.assessdateTD').text());
var casehranum = $.trim($(this).closest('tr').find('.casehranumTD').text());
var dob = $.trim($(this).closest('tr').find('.dobTD').text());

//Put values in a JSON object...
var JSONPacket = {
"assessmentid":assessmentid,
"source":source,
"lname":lname,
"fname":fname,
"ssn":ssn,
"assessdate":assessdate,
"casehranum":casehranum,
"dob":dob
}

//call cfc function via ajax using post()
$.post("../../../cfc/starsImporter.cfc", {method: "updateAssessment", data: JSONPacket},
function(response) {
console.log(response);
},
"json");
});

我显然将所需参数传递给带有“data: JSONPacket”的 cfc 函数,所以不确定问题出在哪里。

最佳答案

我认为你需要单独传递参数。按照现在的编写方式,jQuery 正在将 data 结构作为带有 data[source]

等键的字符串传递
$('.ajaxSubmitBtn').on('click', function() {

//grab values from editable table cells...
var assessmentid = $.trim($(this).closest('tr').find('.ajaxSubmitBtn').val());
var source = $.trim($(this).closest('tr').find('.sourceTD').text());
var lname = $.trim($(this).closest('tr').find('.lnameTD').text());
var fname = $.trim($(this).closest('tr').find('.fnameTD').text());
var ssn = $.trim($(this).closest('tr').find('.ssnTD').text());
var assessdate = $.trim($(this).closest('tr').find('.assessdateTD').text());
var casehranum = $.trim($(this).closest('tr').find('.casehranumTD').text());
var dob = $.trim($(this).closest('tr').find('.dobTD').text());

//Put values in a JSON object...
var JSONPacket = {
"method" : "updateAssessment",
"assessmentid":assessmentid,
"source":source,
"lname":lname,
"fname":fname,
"ssn":ssn,
"assessdate":assessdate,
"casehranum":casehranum,
"dob":dob
}

//call cfc function via ajax using post()
$.post("../../../cfc/starsImporter.cfc", JSONPacket,
function(response) {
console.log(response);
},
"json");
});

氟氯化碳

<cffunction name="updateAssessment" returntype="struct" returnformat="json" access="remote" hint="For ajax update of a single assessment record">
<cfargument name="assessmentid" type="string" required="true" />
<cfargument name="source" type="string" required="true" />
<cfargument name="lname" type="string" required="true" />
<cfargument name="fname" type="string" required="true" />
<cfargument name="ssn" type="string" required="true" />
<cfargument name="assessdate" type="string" required="true" />
<cfargument name="casehranum" type="string" required="true" />
<cfargument name="dob" type="string" required="true" />
...

关于javascript - 调用 Coldfusion 组件函数的 jQuery post 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33697794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com