$ Ajax - 获取coldfusion错误“ColdFusion无法将您指定的文本添加到输出流。”
问题描述:
由于此错误,我停在了几页上。我不知道为什么我的cfc方法将任何东西返回到输出流。这是返回错误消息的成功函数。数据库正在正确更新。
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>
答
几件事情......
在你的Ajax调用,尽量指定,&returnFormat=json
此外,添加这个...
<cfset var qResults = "">
<cfcontent type="application/json" />
要哟你的CFC返回,那样响应头将返回Json。
答
由于您不希望该方法返回任何内容,因此不要返回任何内容。
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);
}
});
}
}
基于使用Railo(模仿CF9这里大部分)我的测试,你应该得到一个空的警报。
+0
是的,将数据类型设置为html,返回类型有很大的不同。谢谢。 – user990016 2012-01-31 02:05:17
+0
@ user990016。那你为什么不接受答案? – gdoron 2012-02-04 22:08:13
语法错误:杰森解析:意外的字符。 //空临时欺骗文件 \t \t \t \t \t为(VAR I = 0;我
user990016
2012-01-29 22:20:27
我真的不期待任何来自cffunction回来alrteady。 – user990016 2012-01-29 22:26:57