31 Stimmen

Wie prüfe ich, ob die Anfrage über AJAX in CodeIgniter erfolgt?

Wie prüfe ich, ob es sich bei der Anfrage um eine AJAX-Anfrage handelt? Ich verwende CodeIgniter. Ich habe einen Link, dass, wenn es geklickt, es wird das Pop-up-Dialogfenster öffnen dies durch AJAX es Anfragen an einen Controller-Namen getan ist login_window() .

CodeIgniter

//Here is the controller name:
function login_window(){
    // request via ajax
    $this->load->view("login_window");
}

jQuery

//here is the jquery code:
//I am using a jquery plugin FACEBOX

$('a[rel*=dialog]').facebox();

<a href="http://localhost/codeigniter/login_window" rel="dialog">Login</a>

Ich möchte überprüfen, ob es eine AJAX-Anfrage ist und wenn nicht, werde ich sie auf die Homepage umleiten. so gibt es keine Möglichkeit, die sie auf die Seite zugreifen können, die nur für AJAX-Anfragen bestimmt ist.

1voto

Fancy John Punkte 36477

In Yii überprüfen Sie einfach

    if (Yii::app()->request->isAjaxRequest)

Wenn Sie jQuery oder eine andere wichtige Javascript-Bibliothek verwenden, funktioniert es. Wenn Sie benutzerdefinierte Anfragen machen, vergessen Sie nicht, ot zu setzen X-Requested-With HTTP-Header zu XMLHttpRequest .

0voto

Dheeraj Thedijje Punkte 937

Codeigniter hat eine eingebaute Funktion, um zu prüfen, ob die Anfrage über einen Ajax-Aufruf erfolgt.

Sie können auf folgende Weise überprüfen, ob ein controller/segment mit Ajax aufgerufen wird oder nicht.

<?php
Class Only_ajax extends CI_controller{

   function validate_user()
  {
     /*
      * Check if URL only_ajax/validate_url is called from ajax
      * if not display not found error to user.
      *
      **/

     if(!$this->input->is_ajax_request()){
       show_404();
     }

  }

}

Sie können auch viele andere Prüfungen verwenden, indem Sie input Klasse. Wenige von ihnen sind

  • $this->input->get_request_header();
  • $this->input->is_cli_request()
  • $this->input->ip_address()

Die vollständige Liste der verfügbaren Methoden finden Sie unter Offizielle Dokumentation

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X