Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Grails SubmitToRemote onFailure选项不起作用_Javascript_Ajax_Grails_Gsp - Fatal编程技术网

Javascript 使用Grails SubmitToRemote onFailure选项不起作用

Javascript 使用Grails SubmitToRemote onFailure选项不起作用,javascript,ajax,grails,gsp,Javascript,Ajax,Grails,Gsp,我试图使用Grails标记submittomote来处理失败消息(比如验证域对象上的错误) 我的标签是: <g:submitToRemote url="[action: 'save']" update="[success: 'wizard', failure: 'error']" onFailure="onFailure(data, code)" name="submit" class="btn btn-large btn-inv

我试图使用Grails标记
submittomote
来处理失败消息(比如验证域对象上的错误)

我的标签是:

<g:submitToRemote
      url="[action: 'save']"
      update="[success: 'wizard', failure: 'error']"
      onFailure="onFailure(data, code)"
      name="submit"
      class="btn btn-large btn-inverse"
      value="Save"/>

我如何才能正确地做到这一点?

我在失败时使用力道,但在成功时使用力道,并实现了类似的功能

<g:submitToRemote
      url="[action: 'save']"
      update="show_response"
      onSuccess="handleResponse(data, code)"
      name="submit"
      class="btn btn-large btn-inverse"
      value="Save"/>    
编写一个groovy类来处理响应,例如response.groovy

class Response {  
        boolean success  
        def errors = []           

        Response(String errorMessage) {  
            this.success = false  
            this.errors << [message: errorMessage]  
        }  
        ....  
    } 
类响应{
布尔成功
def错误=[]
响应(字符串错误消息){
成功=错误

我不知道这是否有帮助,但肯定能帮助其他人

我成功地调用了onFailure方法并将消息传递给

我就是这样做的,我在控制器中设置了错误代码和文本,如下所示:

render(status: 403, text: 'Request failed to complete due to some error.')
然后在gsp上,我使用XMLHttpRequest提取消息:

<g:formRemote onFailure="onFailure(XMLHttpRequest.responseText)" ...>
Grails版本:2.5.0


希望这有帮助!

它是如何工作的?您看到了什么?您看到浏览器中的400了吗?我不确定必须在onFailure函数中设置哪些参数。传递数据和代码属性无效。浏览器控制台中有任何错误吗?IDE控制台中有任何异常吗?操作调用是否正确?否,没有浏览器错误或IDE中的r异常。正在调用该操作并正确呈现错误。这很奇怪…我知道您已经这样做了。但这是正确的方法吗?那么submitToRemote标记中的onFailure的功能是什么?
class Response {  
        boolean success  
        def errors = []           

        Response(String errorMessage) {  
            this.success = false  
            this.errors << [message: errorMessage]  
        }  
        ....  
    } 
 <g:javascript>
    function handleResponse(response,textStatus){
    if(response.success === true){
     //use the div and write the UI to show message
     } else {
     //use the div and write the UI to show message
     }    
    </g:javascript>
render(status: 403, text: 'Request failed to complete due to some error.')
<g:formRemote onFailure="onFailure(XMLHttpRequest.responseText)" ...>
error:function(XMLHttpRequest,textStatus,errorThrown){onFailure(XMLHttpRequest.responseText)...