2014-10-16 96 views
0

這是一個很瑣碎的問題,更多的是好奇..返回成功或失敗的jQuery AJAX標準要求

你們如何返回上一個jQuery Ajax的數據呼叫? 「成功」還是「失敗」,0或1,還有其他什麼?

有沒有更好的方法來做到這一點?最佳做法是什麼?

public function ajaxCheckTask(){ 

    $task = Task::findOrFail(Input::get('id')); 

    if($task->user_id == Auth::user()->id){ 
     $task->mark(); 
     return 'success'; 
    } 

    return 'fail'; 

} 

回答

0

AJAX表示**Asynchronous** JavaScript and XML。所以你不能返回成功或失敗,因爲請求會是你正在做的異步操作,但是你可以對成功或失敗做出一個動作。我已在JavaScript中的代碼示例(來源:W3Schools的情況下,如果你想知道更多)

JAVASCRIPT

xmlhttp=new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     // Do the success action 
    } 
    else{ 
     // Do the failure action 
    } 
} 
xmlhttp.open("GET OR POST","URL TO CALL"); 
xmlhttp.send("DATA TO SEND"); 

JQUERY

$.ajax({ 
    url: URL, // URL to post the data 
    method: 'post',// suitable http verb 
    data: '', // values to be passed with the request 
    success: function(response) { 
     // Do the success action 
    }, 
    failure : function(response){ 
     // Do the failure action 
    } 
}); 
+0

請提供詳細代碼的有用答案。如果您使用任何其他jQuery AJAX方法(例如$ .get,$ .getJSON等),則必須將其更改爲$ .ajax(因爲您只能將配置參數傳遞給$ .ajax)並提供變量狀態async:假; – 2014-10-17 07:24:52

+0

我已經解決了OP真正要求的是「是否可以在ajax調用上返回成功或失敗」。答案是否定的。如果你正在談論同步請求,那麼它被稱爲SJAX而不是AJAX。我寫的代碼是讓OP更好地理解答案。 – 2014-10-17 07:32:24

0

你這是怎麼調用來自後端的成功消息。

$.ajax({ 
    url: URL, 
    method: 'post', 
    dataType: 'json', 
    data: {"var":"val"} 
    success: function(response) { 
     alert(response); 
    }, 
    failure : function(response){ 
     alert(response); 
    } 

}); 
相關問題