2016-09-20 82 views
0

AJAX:我應該檢查Ajax請求或不

$.ajax({ 
     type:"POST", 
     url: "{{url('/post/add')}}", 
     data: { 
     "_token": "{{ csrf_token() }}", 
     "id": id 
     }, 

     success: function (data) { 
      var res = $.parseJSON(data); 
      if(res == true) 
      { 
       alert('hi'); 
      } 
     } 
    }); 

Laravel控制器:我已經檢查了控制器Ajax請求。

public function add(Request $request) 
{ 
    if($request->ajax()) 
    { 
     // codes 
     echo json_encode(TRUE);die; 
    } 
} 

但是,我注意到我不需要檢查ajax請求嗎?並且不檢查ajax請求如何得到警報?

public function add(Request $request) 
    { 
      // codes 
      echo json_encode(TRUE);die 
    } 
+0

如果調用是ajax調用,那麼如果statment返回一個json響應,否則返回一個視圖,在這種情況下,您將能夠使用相同的函數來檢索json或視圖,具體取決於您如何調用函數 –

+0

@Aschraf即使沒有,如果陳述我返回JSON響應,它運行良好。 – Steve

+0

我知道,但是如果您有其他視圖需要相同的數據,但不使用ajax訪問數據呢?你會做什麼?你會檢查它是否不同於ajax,然後返回一個視圖,即時說什麼,如果你只是使用這個Ajax然後你不需要添加if語句 –

回答

1

該檢查只是有效請求的一個額外措施。正如您已經注意到的那樣,這並不是必要的,但是如果您希望按照您的預期驗證請求是通過AJAX請求發送的 - 您可以。

1

它只是取決於你。您可以根據請求是否是AJAX請求來做不同的事情。例如返回JSON或普通視圖。

如果您希望只有AJAX請求才能訪問您的路由,那麼您可以使用中間件來保護這些路由。有關更多信息,請檢查this answer

+0

即使沒有,如果語句我返回JSON響應,它正在運行好。 – Steve

+0

@Steve。是。那是問題嗎?請求是一個請求。 Laravel不在乎。如果你願意,它可以讓你接受不同的東西。 –