$ Ajax - getting coldfusion error“ ColdFusion无法将您指定的文本添加到输出流。 [英] $Ajax - getting coldfusion error " ColdFusion was unable to add the text you specified to the output stream."

查看:151
本文介绍了$ Ajax - getting coldfusion error“ ColdFusion无法将您指定的文本添加到输出流。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于这个错误,我在几个网页上停了下来。我不知道为什么我的cfc方法返回任何东西到输出流。这是返回错误消息的成功函数。

  function onSelectChange(){
var selected = $(#MrMrsSelect option:选择);
if(selected.val()!= 0){
// alert(You Selected+ selected.text()+for+ SelectedInvid);
$ .ajax({
类型:POST,
url:cfc / basic.cfc?method = FixMrMrs,
data:indivNum =+ SelectedInvid + & MrMrs =+ selected.text(),
error:function(xhr,textStatus,errorThrown){
//显示错误
alert(errorThrown);
} ,
success:function(data){
alert(data);
},


b $ b

CFC:

 < cffunction name =FixMrMrsoutput =falseaccess =remote > 
< cfargument name =IndivNumrequired =Truetype =stringdefault =>
< cfargument name =MrMrsrequired =Truetype = stringdefault =>
< cfset var qResults =>
< cfquery name =qResultsdatasource =#request.dsn#>
users_info
SET Mr_Mrs_Ms_Miss ='#arguments.MrMrs#'
WHERE ID =< cfqueryparam value =#arguments.IndivNum#/>
< / cfquery>
< cfreturn true>
< / cffunction>


解决方案

因为你不期望方法返回任何东西,不返回任何内容。



base.cfc:

  < cffunction name =FixMrMrsreturntype =voidoutput =falseaccess =remotereturnformat =plain> 
< cfargument name =IndivNumrequired =Truetype =stringdefault =>
< cfargument name =MrMrsrequired =Truetype =stringdefault =>
< cfset var qResults =>
< cfquery name =qResultsdatasource =#request.dsn#>
UPDATE users_info
SET Mr_Mrs_Ms_Miss ='#arguments.MrMrs#'
WHERE ID =< cfqueryparam value =#arguments.IndivNum#/>
< / cfquery>
< cfreturn />
< / cffunction>

javascript:

 code> 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){
//显示错误
alert(errorThrown);
} ,
success:function(data){
alert(data);
}
});基于我使用Railo的测试(其模拟CF9的用法)大部分在这里),你应该得到一个空警报。


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>    

解决方案

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.

这篇关于$ Ajax - getting coldfusion error“ ColdFusion无法将您指定的文本添加到输出流。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆