我正在使用CodeIgniter和JavaScript/jQuery构建一个书签应用程序。现在,我的CI应用程序只是向书签脚本返回一个JSON编码的数组,但显然jQuery不能使用它,因为这不是JSONP/跨域策略问题。
如何让我的CodeIgniter函数返回JSONP结果?我对JSONP不是很了解,所以请原谅我的无知。
发布于 2010-12-13 20:09:53
据我所知,JSONP只是从URL加载脚本,而不是创建XHR。URL将返回javasript,而不是返回json/xml/纯文本。返回的javascript将只是调用一个全局函数,并传递JSON数据。jQuery很方便地在JSONP请求之前创建了这个全局函数,并在JSONP请求中将其标识符作为“回调”发送。
简单地说,您必须访问$_GET'callback',它包含回调函数的名称。例如:
<?php echo $_GET['callback']."(".json_encode($arrayJSONData).")"; ?>这将返回javascript,该javascript调用全局javascript函数,并将json数据传递给它。
请记住,这不是XHR/Ajax,而是动态地附加一个新的DOM脚本元素,您不能发布数据,因此没有$_POST。在HTML中创建脚本元素时,如何发送POST数据?它是只能传递GET数据:<script src='someurl.php?this=getdatastuff'></script>。
我想这就是它的工作原理。xb
https://stackoverflow.com/questions/4426042
复制相似问题