使用CodeIgniter从Bookmarklet进行异步页面调用

时间:2009-03-20 13:05:19

标签: php javascript codeigniter asynchronous

我正在尝试创建一个书签,它将获取您当前页面的URL,并将其发送到使用CodeIgniter编写的应用程序。

我一直遇到的问题是我无法进行标准的AJAX调用,因为它是跨域的。它是不允许的,我无法通过$_GET方法找出使用JSONP的方法,因为CodeIgniter会烧掉$_GET参数。

此时我会就如何做到这一点提出任何建议。请注意,我需要发送一个URL,如果它要通过URL本身传递,它显然需要编码或其他东西。这个我也没想出怎么做,所以任何指针都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

可以enable query strings in Codeigniter,但要注意警告 - 例如,您不能使用URL帮助程序。

答案 1 :(得分:0)

Codeigniter取消设置$ _GET,但您可以从查询字符串中获取数据。这有点低效,因为PHP可能会结束解析查询字符串两次,但它应该工作:

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

所有GET变量都应该在变量$ get中可访问。有关更多信息,请参阅parse_str() documentation


作为替代方案,您可以对当前网址进行网址编码,并将其附加到您要求的网址上。

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

然后在Codeigniter中执行以下操作:

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

但您可能会发现this problem