Javascript 使用Grails SubmitToRemote onFailure选项不起作用
我试图使用Grails标记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
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)...