2016-09-20 2 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, else вернет представление, в этом случае вы сможете использовать ту же функцию для извлечения json или view в зависимости от того, как вы вызываете функцию –

+0

@Aschraf даже без этого оператора if я возвращаю ответ json, и он работает хорошо. – Steve

+0

Я знаю, но что, если у вас есть другое представление, которое хочет получить одни и те же данные, но вы не получаете доступ к данным с помощью ajax? что бы вы сделали? вы проверите, не отличается ли он от ajax, а затем верните представление, которое говорит им, если вы используете это только для ajax, тогда вам не нужно добавлять статус if –

ответ

1

Проверка - это просто дополнительная мера действительного запроса. Это необязательно, как вы заметили, но если вы хотите проверить, что запрос поступает через запрос AJAX, как вы ожидали, вы можете.

1

Чтобы определить if the request is the result of an AJAX call, вы должны использовать $request->ajax(). Если вы работаете только с запросами AJAX в своем методе, вы можете опустить эту проверку.

1

Это просто зависит от вас. Вы можете делать разные вещи на основе запроса запроса AJAX или нет. Например, возвращение JSON или нормальное представление.

Если вы хотите, чтобы ваши маршруты были доступны только с помощью запросов AJAX, возможно, вы можете защитить эти маршруты с помощью промежуточного программного обеспечения. Для получения дополнительной информации об этом уточните this answer.

+0

даже без этого, если оператор i возвращает ответ json и работает Что ж. – Steve

+0

@Steve. да. Это проблема? Запрос - это запрос. Ларавелу все равно. Его до вас на разные вещи, если хотите. –

Смежные вопросы