$ Ajax - получение ошибки coldfusion «ColdFusion не удалось добавить указанный вами текст в выходной поток». - PullRequest
1 голос
/ 29 января 2012

Я остановился на нескольких страницах из-за этой ошибки. Я не уверен, почему мой метод 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>    

Ответы [ 2 ]

1 голос
/ 31 января 2012

Поскольку вы не ожидаете, что метод вернет что-либо, не возвращайте ничего.

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 голосов
/ 29 января 2012

Пара вещей ...

В своем вызове Ajax попробуйте указать &returnFormat=json

Также добавьте это ...

<cfset var qResults = "">
<cfcontent type="application/json" />

К вашему возврату CFC таким образом заголовки ответа будут возвращать Json.

...