Асинхронный вызов страницы из букмарклета с CodeIgniter - PullRequest
0 голосов
/ 20 марта 2009

Я пытаюсь создать букмарклет, который будет брать URL текущей страницы, на которой вы находитесь, и отправлять ее в приложение, написанное с использованием CodeIgniter.

Проблема, с которой я продолжаю сталкиваться, заключается в том, что я не могу выполнить стандартный вызов AJAX, потому что он междоменный. Это запрещено, и я не могу найти способ использовать JSONP с помощью метода $_GET, поскольку CodeIgniter уносит параметр $_GET.

На данный момент я приму любые предложения о том, как это сделать. Обратите внимание, что мне нужно отправить URL-адрес, и если он должен быть передан через сам URL-адрес, его, очевидно, необходимо кодировать или что-то в этом роде. Это я также не понял, как это сделать, поэтому любые указатели на этом конце будут также оценены.

Ответы [ 2 ]

0 голосов
/ 20 марта 2009

Codeigniter сбрасывает $ _GET, но вы можете получить данные из строки запроса. Это немного неэффективно, потому что PHP, вероятно, прекратит синтаксический анализ строки запроса дважды, но он должен работать:

parse_str($_SERVER['QUERY_STRING'], $get);
print_r($get);

Все переменные GET должны быть доступны в переменной $ get. См. parse_str() документация для получения дополнительной информации.


В качестве альтернативы вы можете кодировать URL-адрес текущего URL и добавлять его к тому, что вы запрашиваете, например,

var url = 'http://example.com/bookmarklet/' 
               +  encodeURIComponent(window.location);

Затем в Codeigniter сделать что-то вроде:

//you might have to call urldecode() on this value 
$url = $this->uri->segment(0); 

но вы можете обнаружить, что у вас эта проблема

0 голосов
/ 20 марта 2009

Можно включить строки запроса в Codeigniter , но не упускайте предупреждения - вы не можете использовать, например, хелпер URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...