Эта проблема, скорее всего, специфична для codeigniter.
У меня есть контроллер с именем redirect.php, который перенаправляет из и в представления. Этот контроллер по большей части имеет одну общедоступную функцию _remap
, которая выполняет все перенаправления с оператором case. Все работало отлично, пока я не отправил $.POST
из представления обратно в контроллер. Я хочу, чтобы он попал в _remap и проверил, что запрос исходит от AJAX, а затем сделал это.
У меня есть константа IS_AJAX
, которую я проверяю.
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
но всякий раз, когда я нажимаю на страницу, она всегда переназначается на значение по умолчанию и отправляет мой запрос на эту страницу, где он в основном возвращает мне данные страниц назад, когда я повторяю и предупреждаю данные туда и сюда.
Любые идеи?
для справки,
redirect.php (есть больше кода для определения переменных и еще 2 случая, но он не попадает в них, он попадает в «индекс» / по умолчанию)
public function _remap($method)
{
switch ($method) {
case $method == 'index':
$this->load->view('main');
break;
case $method == 'IS_AJAX':
var_dump($_POST);
break;
default:
$this->load->view('main');
}
}
tweetview.php (представление, загруженное контроллером перенаправления в другом случае в redirect.php, отправка json_tweets является переменной JSON)
//jquery
$.post("http://localhost/2fb/index.php/redirect", {'json_tweets': json_tweets},
function(data) {
alert(data);
});