Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSONP、CodeIgniter和Bookmarklet_Javascript_Jquery_Codeigniter_Jsonp_Bookmarklet - Fatal编程技术网

Javascript JSONP、CodeIgniter和Bookmarklet

Javascript JSONP、CodeIgniter和Bookmarklet,javascript,jquery,codeigniter,jsonp,bookmarklet,Javascript,Jquery,Codeigniter,Jsonp,Bookmarklet,我正在用CodeIgniter和JavaScript/jQuery构建一个bookmarklet应用程序。现在我的CI应用程序只是将一个JSON编码的数组返回给bookmarklet脚本,但显然jQuery无法使用它,因为这不是JSONP/跨域策略问题 如何使CodeIgniter函数返回JSONP结果?我对JSONP没有最好的理解,所以请原谅我的无知。JSONP,据我所知,只是从URL加载脚本,而不是制作XHR。URL将返回javasript,而不是返回json/xml/纯文本。返回的java

我正在用CodeIgniter和JavaScript/jQuery构建一个bookmarklet应用程序。现在我的CI应用程序只是将一个JSON编码的数组返回给bookmarklet脚本,但显然jQuery无法使用它,因为这不是JSONP/跨域策略问题


如何使CodeIgniter函数返回JSONP结果?我对JSONP没有最好的理解,所以请原谅我的无知。

JSONP,据我所知,只是从URL加载脚本,而不是制作XHR。URL将返回javasript,而不是返回json/xml/纯文本。返回的javascript将只是对传递JSON数据的全局函数的调用。jQuery在JSONP请求之前方便地创建了这个全局函数,并在JSONP请求中以“回调”的形式发送它的标识符

简单地说,您必须访问$\u GET['callback'](必须使用$.GET进行跨域访问)它包含回调函数的名称。例如:

<?php echo $_GET['callback']."(".json_encode($arrayJSONData).")"; ?>

这将返回javascript,javascript调用全局javascript函数并将json数据传递给它

请记住,从某种意义上讲,这不是XHR/Ajax,而是动态地添加一个新的DOM脚本元素,您不能发布数据,因此不能发布$\u。在HTML中创建脚本元素时,如何发送POST数据?只能传递的是GET数据:


我想这就是它的工作原理。xb

首先发布您的代码,然后设置正确的标题()?