Мне нужно проверить, является ли запрос ajax. $request->isXmlHttpRequest()
работает нормально, однако, если в ходе выполнения есть перенаправление, этот метод возвращает false. Как еще я могу проверить, является ли запрос ajax в этом случае? стр. ajax инициируется jQuery
ответ
Если вы перенаправляете arent на другое приложение в своем проекте или на другой внешний uri, просто используйте forward, если isXmlHttpRequest истинно при первом запросе.
Ну что метод проверяет против значения заголовка X-Requested-with
и в некоторых реализациях браузера, что заголовок (или все оригинальные заголовки) отбрасываются/перезаписаны из перенаправлены запроса (FF назвать одну).
В качестве обходного пути вы можете использовать переменную в самом запросе. Возможно, вы сможете использовать существующую инфраструктуру sf_format
, но я не уверен, что это сработает, потому что я не знаком с тем, как она работает внутри страны.
Если вам нужен простой обходной путь, я хотел бы предложить
Используйте URL, как http://mywebsite.com/loadsomething.php?ajax=true и
$isAjax = $request->getParameter('ajax');
Или, если вы публикуете вы можете создать скрытое поле с именем «Аякса». Конечно, это не решит вашу проблему навсегда, но будет работать быстро, если вам это нужно как можно скорее.
Если вы хотите поддерживать только одну переадресацию, вы также можете создать переменную вспышки.
В противном случае вы можете посмотреть на исходный код Symfony:
http://trac.symfony-project.org/browser/branches/1.4/lib/request/sfWebRequest.class.php
В строке 518 вы можете увидеть объект запроса идентифицирует запрос, чтобы быть Аякса из заголовков HTTP. Поэтому вам нужно выяснить, что после перенаправления, почему одни и те же заголовки HTTP установлены неправильно.
Некоторые библиотеки JS не передает значение XmlHttpRequest в заголовках, Жюст добавить это в вашем скрипте:
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
- 1. Symfony bhLDAPAuthPlugin redirect issue
- 2. Symfony FK Constraint Issue
- 3. Symfony 2 database_driver issue
- 4. Symfony 1.4 routing issue
- 5. Symfony + Doctrine + MD5 issue
- 6. PHP AppKernel Symfony Issue
- 7. $ request-> isXmlHttpRequest() возвращает false
- 8. Symfony + Doctrine Oracle DateTime issue issue
- 9. Issue Symfony и AngularJS переменная
- 10. Symfony fk issue on inserting
- 11. $ this -> _ request-> isXmlHttpRequest() Не работает
- 12. Междоменный Ajax - Почему isXmlHttpRequest возвращает false?
- 13. Symfony ESI Cache/Surrogate Listener Issue
- 14. symfony 2 Group Permission Doctrine issue
- 15. symfony 1.4: doctrine: build-sql issue
- 16. Symfony «использовать» для другого пространства имен? » issue
- 17. Symfony: Embeding Collection of Forms issue
- 18. symfony fosuser resseting password issue with validator
- 19. Symfony 3 form multiple file upload issue
- 20. Symfony 3 - Forms as Services Issue
- 21. Symfony 2 Radio Button Boolean Issue?
- 22. Zend Framework $ this -> _ request-> isXmlHttpRequest() IE7/8
- 23. $ this-> getRequest() -> isXmlHttpRequest() всегда возвращает false в Zend
- 24. Symfony 2, ajax
- 25. Issue создания таблиц базы данных с помощью Symfony консоли
- 26. Как вставить данные в базу данных в Symfony 3 issue
- 27. Установка Symfony 2 с помощью Virtualbox и Vagrant issue
- 28. Symfony2 установка FOSUserBundle issue
- 29. ошибка jsrouting-расслоением Symfony
- 30. Symfony swiftmailer memory spool
именно, Firefox виноват. Протестировано то же самое в Opera, отлично работает. – Dziamid
@Dziamid: Да, есть ошибка, но ее пропустили выпуск FF4, так что он будет как минимум 4.1 до его исправления. Кроме того, могут быть и другие браузеры, где это происходит, хотя им не известно ни о каких других вещах. Поэтому я буду играть в нее консервативно с вашим обходом. На самом деле, если возможно, я могу удалить перенаправление из уравнения все вместе, если это возможно. – prodigitalson
Я запрещаю себе голову, но безрезультатно. Очевидно, что установка настраиваемого параметра запроса для объекта запроса не помогает - они понятны при перенаправлении. Использование sf_format является сложным способом (потому что symfony будет искать разные шаблоны, такие как indexSuccess.sf_format.php). – Dziamid