问题
I'm stopped on a couple of pages because of this error. I'm not sure why my cfc method is returning anything to the output stream. It's the success function that is returning the error message. The database is being updated correctly.
function onSelectChange(){
var selected = $("#MrMrsSelect option:selected");
if(selected.val() != 0){
//alert("You Selected " + selected.text() + "for " + SelectedInvid);
$.ajax({
type: "POST",
url: "cfc/basic.cfc?method=FixMrMrs",
data: "indivNum=" + SelectedInvid + "&MrMrs=" + selected.text(),
error: function (xhr, textStatus, errorThrown){
// show error
alert(errorThrown);
},
success: function(data ) {
alert(data);
},
CFC:
<cffunction name="FixMrMrs" output="false" access="remote">
<cfargument name="IndivNum" required="True" type="string" default="">
<cfargument name="MrMrs" required="True" type="string" default="">
<cfset var qResults = "">
<cfquery name="qResults" datasource="#request.dsn#">
UPDATE users_info
SET Mr_Mrs_Ms_Miss = '#arguments.MrMrs#'
WHERE ID = <cfqueryparam value="#arguments.IndivNum#" />
</cfquery>
<cfreturn true>
</cffunction>
回答1:
Since you don't expect the method to return anything, don't return anything.
base.cfc:
<cffunction name="FixMrMrs" returntype="void" output="false" access="remote" returnformat="plain">
<cfargument name="IndivNum" required="True" type="string" default="">
<cfargument name="MrMrs" required="True" type="string" default="">
<cfset var qResults = "">
<cfquery name="qResults" datasource="#request.dsn#">
UPDATE users_info
SET Mr_Mrs_Ms_Miss = '#arguments.MrMrs#'
WHERE ID = <cfqueryparam value="#arguments.IndivNum#" />
</cfquery>
<cfreturn />
</cffunction>
javascript:
function onSelectChange(){
var selected = $("#MrMrsSelect option:selected");
if(selected.val() != 0){
//alert("You Selected " + selected.text() + "for " + SelectedInvid);
$.ajax({
type: "POST",
url: "cfc/basic.cfc?method=FixMrMrs",
data: "indivNum=" + SelectedInvid + "&MrMrs=" + selected.text(),
error: function (xhr, textStatus, errorThrown){
// show error
alert(errorThrown);
},
success: function(data ) {
alert(data);
}
});
}
}
Based on my testing using Railo (which mimics CF9 for the most part here), you should get an empty alert.
回答2:
A couple of things...
In your Ajax call, try and specify, &returnFormat=json
Also, add this...
<cfset var qResults = "">
<cfcontent type="application/json" />
To your CFC return, that way the response headers will return Json.
来源:https://stackoverflow.com/questions/9048946/ajax-getting-coldfusion-error-coldfusion-was-unable-to-add-the-text-you-spe