php排斥ajaxsubmit函数,关于php:ajaxsubmit错误捕获
我無法讓AjaxSubmit捕獲錯誤:
$(document).ready(function(){
$("#supportForm").validate({
rules: {
//validation
},
messages: {
//messages
},
submitHandler: function(form) {
$(form).ajaxSubmit({
url:"ajax/supportform",
type:"GET",
dataType: 'json',
error: function() { alert('error'); },
success: function() {alert('success'); },
});
}
});
})
我必須在php腳本中返回什么才能觸發錯誤事件?
我嘗試返回一個錯誤大于0的數組,exit(json_encode('error'=>'0');等等。
將URL更改為不存在的內容-這將使您在練習時出錯
我不是一個PHP開發人員,但不會簡單地在您的PHP代碼中拋出一個異常(而不是捕獲它)使Ajax調用失敗嗎?
@Francis Gagnon,這取決于最終的錯誤處理。一個簡單的PHP語法錯誤或其他什么不會導致Ajax調用失敗。
@Mike-正確,我的問題是沒有文檔來定義函數期望返回的內容被認為是錯誤!
見Mike de Klerk的鏈接,它提供了陷阱錯誤必須做什么的線索:
似乎成功&錯誤回調與傳遞布爾錯誤/成功消息無關,但僅當成功調用了URL時。我希望我不會得到錯誤結果,因為我使用的CMS總是返回某種內容——即使它是404或403頁。
無論如何,我必須從PHP腳本返回一個JSON字符串:
$response = json_encode(array("error" =>"false","message" =>"this is the error message"));
return $response;
然后在我的成功回調中分析它:
submitHandler: function(form) {
$(form).ajaxSubmit({
url:"ajax/supportform",
type:"POST",
dataType: 'json',
error: function(data ) { alert(data); },
success: function(response) {
var obj = jQuery.parseJSON(response);
if(obj.error =="true"){
alert('error is true');
}else{
alert('error is false')
}
},
});
}
編輯:要顯示來自PHP的某些特定錯誤描述,您應該閱讀以下問題:jquery ajax錯誤處理,顯示自定義異常消息
讓您的服務器產生一些錯誤,使用PHP,您可以這樣做
header("HTTP/1.0 404 Not Found");
?>
查看header函數的文檔:http://nl.php.net/manual/en/function.header.php
您在這里所做的是為您的WebBrowser提供不屬于典型HTML源代碼的數據,通過這些數據,WebBrowser可以知道發生了什么錯誤。
實際上,您可以將所有需要的元數據添加到網頁請求的頭中,但是當WebBrowser不知道這意味著什么時,它將被忽略。請參閱以下定義或狀態代碼:http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html
+1,對于應用程序錯誤,500代碼可能更合適
這將在頭中返回404響應,但文檔本身沒有數據-Ajax請求期望返回數據。(JSON)官方文檔沒有幫助,錯誤回調在任何示例中都沒有。
@Sean Kimball,我知道你想要一個特定的錯誤消息,而不是僅僅在連接錯誤或其他問題上嘗試錯誤處理程序?看編輯是我擺姿勢的答案。
@所以,如果我讀對了,那么成功錯誤與PHP腳本是否返回了什么特別的東西沒有關系,只是返回了一些東西?在這種情況下-?即使在腳本中引入錯誤或移動頁面,我也無法讓它在404或500個標題上引發錯誤。但基本上,我應該將JSON字符串傳遞回成功回調并在那里進行"處理"?在哪種情況下,甚至可以觸發錯誤回調?
@肖恩·金博爾,你讀過我擺姿勢的安瑟爾的網址嗎?stackoverflow.com/questions/377644/…我非常確定您要找的是什么。盡管你最初的問題表明了另外一點。因此,你得到的答案與你正在尋找的答案不同。一定要問清楚你需要知道/想要什么。
我確實做到了,"我必須在PHP腳本中返回什么才能觸發錯誤事件?"&這里的所有建議都不會觸發錯誤回調。但您的鏈接確實提供了一些線索,說明了如何捕獲應用程序錯誤…
將URL更改為不存在的內容以強制出錯
function(form) {
$(form).ajaxSubmit({
url:"ajax/supportform001",
type:"GET",
dataType: 'json',
error: function() { alert('error'); },
success: function() {alert('success');} //
});
}
也不起作用-從站點返回404頁[結果中包含數據],但總是觸發成功回調。
總結
以上是生活随笔為你收集整理的php排斥ajaxsubmit函数,关于php:ajaxsubmit错误捕获的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 博客园的博客终于开通了
- 下一篇: matlab strfind用法,fin