Jestem w skrypcie PHP i chcę sprawdzić, czy żądanie jest żądaniem Ajax. (W zasadzie, tak aby nie dopuścić bezpośredni dostęp do skryptu, inne niż Ajax rozmowy, który jest ...)Sprawdź żądanie Ajax w Code Igniter
Tak, jestem definiowania IS_AJAX
gdzieś w głównym index.php
pliku:
define('IS_AJAX',
isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
A następnie sprawdzenie go na szczycie mojego skryptu:
if (!IS_AJAX) exit('No direct script access allowed');
Ponieważ jestem nowy na CodeIgniter, nie jestem pewien ...
- Czy istnieje taka wbudowana funkcja?
- Czy jest więcej ... elegancki sposób na zrobienie tego?
Świetnie! Wiedziałem, że może mi brakować czegoś ... Wielkie dzięki, kolego! –
is_ajax_request() nie jest miarą bezpieczeństwa. Istnieje podobna odpowiedź, gdy zamiast tego zwracane jest 404, co pozwoliłoby uniknąć mylnego wrażenia. (HTTP/1.1 "Ten kod statusu jest powszechnie używany, gdy serwer nie chce ujawnić, dlaczego żądanie zostało odrzucone lub kiedy nie ma innej odpowiedzi") http://stackoverflow.com/questions/6555652/controller- metody-to-są tylko wywoływane przez ajax-make-private/8072539 # 8072539 – sourcejedi
zwykle używam metody ładowania do załadowania pliku, w jaki sposób zapobiec bezpośredniemu ładowaniu tego pliku? –