Ajax跨域post到PHP kohana 3.2不工作


ajax crossdomain post to php kohana 3.2 not working

我有两个(本地)子域:kohana.local.comwordpress.local.com。jQuery插件(.js)位于kohana.local.com域名和照顾评级文章和检索率计数两个域。Controller_Rating扩展Controller。方法(action_getrating)有以下代码(kohana 3.2):

if($this->request->post() && $this->request->is_ajax()){
    $this->auto_render = FALSE;
    echo "{$_REQUEST['callback']}(".json_encode($data).")";
}

Ajax调用:

$.ajax({
    type: "POST",
    url: "http://kohana.local.com/rating/getrating",
    dataType: "jsonp",
    data: { some_id: id },
    success: function(json){
            //do something
    }
});

当ajax调用从kohana.local.com发出时,一切都很好。如果它是从wordpress.local.com发出的$this->request->is_ajax()是假的,并且方法不是"post",而是"get"。这其中的原因是什么?如何使其发挥作用?Post是必需的,is_ajax对安全性和验证都很好。

提前感谢。

编辑:

Post到jsonp是不可能的,所以我不能使用这种方法。我会试着找到json

方向的解决方案

您可以简单地使用json dataType,因此您不需要使用回调。只需添加头Access-Control-Allow-Origin到服务器的请求(kohana.local.com)。

允许所有域:

Access-Control-Allow-Origin: *

或指定允许的域:

Access-Control-Allow-Origin: http://wordpress.local.host

规范:http://www.w3.org/TR/2008/WD-access-control-20080912/access-control-allow-origin


多域解决方案:Access-Control-Allow-Origin Multiple Origin Domains?