привет всем, я создаю веб-приложение с использованием "angularjs" в качестве front-end и использую "codeingniter" в качестве back-end, однако, когда я запрашиваю запрос с угловым использованием "$ http", встроенным в службы, он возвращает данные хорошо, поэтому моя проблема в том, что когда я проверяю, является ли запрос ajax, используя встроенную функцию в "codeigniter": $this->input->is_ajax_request()
результат будет не ajax-запросом, может ли кто-нибудь помочь мне решить эту проблему спасибо большое за все
увидел это https://forum.codeigniter.com/thread-65552.html
он фиксирует это
dgApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
$httpProvider.interceptors.push(['$q', function($q) {
return {
request: function(config) {
if (config.data && typeof config.data === 'object') {
config.data = $.param(config.data);
}
return config || $q.when(config);
}
};
}]);
}]);
работает для меня.
Добавьте заголовок HTTP_X_REQUESTED_WITH
в запросы $http
чтобы соответствовать тому, что is_ajax_request()
в соответствии с документами CI.
Вы можете установить значения по умолчанию или для каждого запроса или в httpInterceptor. $ http, похоже, не использует его, и нет никаких обязательных спецификаций для заголовков серии HTTP_X***
HTTP_X_REQUESTED_WITH
к запросам$http
чтобы соответствовать тому, чтоis_ajax_request()
ищет в соответствии с документами CI. Может быть установлен по умолчанию или для каждого запроса или в httpInterceptor.$http
, похоже, не использует его, и нет никаких обязательных спецификаций для заголовков серииHTTP_X***