Эта проблема, скорее всего, специфична для 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 случая, но он не затрагивает их, он достигает 'index' / default)
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 send является переменной JSON)
// JQuery
$.post("http://localhost/2fb/index.php/redirect", {'json_tweets': json_tweets},
function(data) {
alert(data);
});