Javascript 通过Laravel4.1PHP控制器和JQuery/JSONP为外部小部件使用回调
我正在尝试制作一个外部小部件,允许其他站点的用户进行“投票”,我想收集并存储在我的数据库中。我正在尝试将其与我在Laravel的控制器/模型集成。但是,当我将javascript标记和div放在另一个站点上时,不会显示信息。现在我正试图通过jsonp传递简单的信息。代码如下: WidgetController.php:Javascript 通过Laravel4.1PHP控制器和JQuery/JSONP为外部小部件使用回调,javascript,php,jquery,laravel,callback,Javascript,Php,Jquery,Laravel,Callback,我正在尝试制作一个外部小部件,允许其他站点的用户进行“投票”,我想收集并存储在我的数据库中。我正在尝试将其与我在Laravel的控制器/模型集成。但是,当我将javascript标记和div放在另一个站点上时,不会显示信息。现在我正试图通过jsonp传递简单的信息。代码如下: WidgetController.php: <?php class WidgetController extends BaseController { public function external_
<?php
class WidgetController extends BaseController {
public function external_widget() {
$data = "{Hello World!}";
if(array_key_exists('callback', $_GET)){
header('Content-Type: text/javascript; charset=utf8');
header('Access-Control-Allow-Origin: http://www.example.com/');
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
$callback = $_GET['callback'];
echo $callback.'('.$data.');';
}else{
// normal JSON string
header('Content-Type: application/json; charset=utf8');
echo $data;
}
}
}
最后,我尝试在另一个网页上使用以下命令调用此命令:
<div id="example-widget-container"></div>
我试图在另一个网站上打印的“hello world”没有显示。你知道发生了什么事吗 要使用JSONP技术,您应该返回有效的JSON对象,并在其周围包装一个函数调用。JSON是无序属性值对的集合。{Hello World!}不是有效的JSON,尝试使用正确的JSON格式可能会解决您的问题 PHP
$data = "{msg:'Hello World!'}";
Javascript
var jsonp_url = "http://myurl.com/widget/external_widget?callback=?";
$.getJSON(jsonp_url, function(data) {
$('#example-widget-container').html("This data comes from another server: " + data.msg);
});
$data = "{msg:'Hello World!'}";
var jsonp_url = "http://myurl.com/widget/external_widget?callback=?";
$.getJSON(jsonp_url, function(data) {
$('#example-widget-container').html("This data comes from another server: " + data.msg);
});