CakePHP从远程站点页面返回HTML,通过AJAX调用查看

时间:2014-03-11 01:28:19

标签: jquery ajax cakephp

我正在尝试向我的页面添加一个表单请求,该请求将通过AJAX调用向用户返回一些HTML。我正在使用CakePHP框架和内置帮助程序来执行AJAX请求。我已经尝试了多种方式来执行请求并返回返回到响应DIV的HTML。但似乎有一些重大问题阻止你调用外部页面并将其返回。

我知道我的GET查询工作正常,因为我可以将firebug请求位置复制到浏览器中并获得正确格式化的响应页面。

从我完成的搜索开始,我已经收集到您不允许执行跨浏览器请求,并且您必须从控制器进行某种重定向。我也尝试了几件事但没有成功。如果我只是将我的ajax请求更改为本地控制器操作,它确实有效。但是我需要显示来自我的外部页面的请求响应,该响应从另一个服务器返回数据。我可以控制服务器和页面。

在CakePHP中设置它的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我无法完全理解您尝试过的内容,但是,简单来说,您无法使用AJAX来请求来自其他域的内容。你可以做的是使用PHP作为代理,我认为这是你的建议。

所以,如果你有一个带有'stuff'动作的Things控制器,你的AJAX会从CakePHP网站请求内容,如下所示:

$.getJSON('/things/stuff', function(data) {
    console.log(data);
});
然后

你'stuff'动作将使用PHP获取外部内容(例如使用file_get_contents)并将其返回(上面的'data')给你的AJAX回调。

function stuff() {
    $content = file_get_contents('http://www.stuff.com/thing');
    $this->set('content', $content);
}

那应该做你想要的。

托比