嗨,我的问题是检查后如何从grails端发送错误,例如,如果我有,则在grails控制器中被调用(不知道它是否正确):

     if(something){ return error #}
     else if(something){ return error #}
     else{ return error#} 

然后我需要在js函数中执行什么操作,以便它可以接收到所述错误并对其采取行动。 即。 错误200照常继续,错误400呈现了新页面等,只需要阅读此错误的部分即可。

===============>>#1 票数:0

简单的东西:

 def delPhoto() {
        Photos ph = Photos.get(params.id as Long)
        if (ph) {
           doSomething()
           //  return status 200
           render status:response.SC_OK
           return
        }
        //OtherWise return 404
        render status:response.SC_NOT_FOUND
    }

现在在您的gsp Java脚本中

$.ajax({timeout:1000,cache:true,type: 'GET',url: "${g.createLink(controller: 'photos', action: 'delPhoto')}",
            success: function(data) {
                $("#uploads").html(data);
            }, 
 statusCode: {
                417: function() {
                    $('#field').css({'color':'white'});
                    $('#field').html("${g.message(code:'default.false.error')}")
                }
            },
 statusCode: {
                404: function() {
                    $('#field').css({'color':'white'});
                    $('#field').html("${g.message(code:'default.false.error')}")
                }
            },

            error: function (e) {
            }
        });

        });

因此,您的ajax调用会为每个错误消息或成功定义页面上要更新的内容

===============>>#2 票数:0

无需返回状态,您可以直接在控制器操作中设置响应状态,如下所示

response.status = 401

并渲染您想要的任何东西。

并在如下所示的ajax成功处理程序中访问您的响应状态

$.ajax({
    //...        
    success: function(data, textStatus, xhr) {
        console.log(xhr.status);
    } 
});

  ask by ZarifS translate from so

未解决问题?本站智能推荐: