我打算在 yii 中创建一个 Restful API 用于跨域通信。正如我所研究的,跨域通信只能通过jsonp完成,我的实现如下:
用户控制器:: actionCrossDomain
公共函数 actionCrossDomain(){ $this->布局=假; $data['data']['User']['name']='Johny'; $this->_sendResponse(200, CJSON::encode($data),'application/json'); }
UsersController::_sendResponse 方法与您在中看到的相同:单击此处
在我使用虚拟主机配置的另一台服务器上,我通过 ajax 调用上述方法:
$( 文档 ).ready(function() { $.ajax({ 类型:“发布”, 数据类型:“jsonp”, url:'http:'http//uxaserver.local/alpha2/app/users/crossDomain', 数据:空, 处理数据:假, 跨域:是的, 内容类型:“应用程序/json”, 成功:函数(数据){ console.log("完成"); }, 错误:功能(请求,状态,错误){ 控制台.log(请求); } }); });
问题是我的萤火虫正在抱怨:
语法错误:标签无效
我的要求是这样的,因为我正在帮助我的客户对他的其他网站进行一些定制的分析,我需要在他的不同域的网页中放置一个脚本,以便将分析数据记录在主服务器中。我了解我需要使用其余接口进行通信,因此我采用了这种方法。我不确定我是否采取了正确的方法,请指教。我想以一种客户端具有 api 密钥并且可以与我提供的 api 进行通信的方式来实现它。
有没有其他方法可以做到这一点?而不是jsonp?