Php 编码点火器中的JSONP
我在CodeIgniter中使用jQuery JSONP方法Php 编码点火器中的JSONP,php,jquery,codeigniter,jsonp,Php,Jquery,Codeigniter,Jsonp,我在CodeIgniter中使用jQuery JSONP方法$.getJSON时遇到问题。从中获取JSON的URL如下所示: http://spinly.000space.com/index.php/admin/isloggedin 问题是我有一个demo.html文件,它运行$.getJSON方法,并从上面提到的URL获取数据 demo.html: <html> <head> <script src="http://www.spinly.000space
$.getJSON
时遇到问题。从中获取JSON的URL如下所示:
http://spinly.000space.com/index.php/admin/isloggedin
问题是我有一个demo.html
文件,它运行$.getJSON
方法,并从上面提到的URL获取数据
demo.html:
<html>
<head>
<script src="http://www.spinly.000space.com/public/js/jquery.js"></script>
<script>
$(document).ready(function(){
var myurl = "http://spinly.000space.com/index.php/admin/isloggedin/&jsoncallback=?";
//myurl = "http://com.lnk.bz/jsonp.php?sleep=3&jsoncallback=?";
$.getJSON(myurl,function(adat) {
alert(adat);
// clearTimeout(t);
});
});
</script>
</head>
<body>
<div id="images">
</div>
</body>
</html>
$(文档).ready(函数(){
var myurl=”http://spinly.000space.com/index.php/admin/isloggedin/&jsoncallback=?";
//myurl=”http://com.lnk.bz/jsonp.php?sleep=3&jsoncallback=?";
$.getJSON(myurl,函数(adat){
警报(adat);
//清除超时(t);
});
});
当我运行
demo.html
时,什么都没有发生。如您所见,当我将URL更改为另一个不使用CodeIgniter作为框架的URL时,它应该会提醒返回的数据。我运行了警报函数,但在本例中,当使用CodeIgniter备份的URL时,它不起作用。有人能解决我的问题吗?如果你能给我一些反馈,我将不胜感激。提前谢谢 url中的符号有误:
loggedin/&jsoncallback=?
它应该是类似于
loggedin/?jsoncallback=?
运行我得到的响应
jsonp123( ...
这意味着它试图调用jsonp123函数,而此时代码的adat部分从未被使用。默认情况下,CI不允许查询字符串,那么您是否在config.php中启用了启用查询字符串
$config['enable_query_strings'] = TRUE;
还要确保在config.php中将
$config['allow\u get\u array']
设置为TRUE
。这将允许您使用
$this->input->get()代码>
在控制器中 我认为您面临的问题是因为浏览器限制不允许跨域请求。我猜你正在其他域/子域上托管你的应用程序,这就是导致此问题的原因
您需要使用的是JSONP,即带有填充的Json。详情如下:
在这里查看jQuerysAjax api中的jsonp:看看这是否解决了您的问题 postpostmodern:我已经更改了代码,现在显示了{“title”:“user online”,“user”:{“online”:“yes”}},但仍然不起作用。getJson方法生成了一个新函数,该函数被替换到url中,发送时类似于:loggedin/?jsoncallback=jsonp1239837994134&=1239838173986尝试用以下内容替换php:$cb=$\u GET['jsoncallback'];echo$cb;echo'({“test”:true})”;这有点令人困惑。正在寻找一种在CI中实现jsonp的好方法…在详细说明之前,您能否指定您使用的CI版本,以及它是“Core”还是“Reactor”?此URL不再有效。