我计划在yii中创建Restful API以进行跨域通信。正如我所研究的那样,跨域通信只能通过jsonp完成,我的实现如下:
UsersController :: actionCrossDomain
public function actionCrossDomain(){ $this->layout=false; $data['data']['User']['name']= 'Johny'; $this->_sendResponse(200, CJSON::encode($data),'application/json'); }
UsersController :: _ sendResponse方法与你在Click here
中看到的相同在我使用虚拟主机配置的另一台服务器上,我通过ajax调用上述方法:
$( document ).ready(function() { $.ajax({ type: "POST", dataType: "jsonp", url:'http:'http//uxaserver.local/alpha2/app/users/crossDomain' , data: null, processData: false, crossDomain: true, contentType: "application/json", success: function (data) { console.log("done"); }, error: function (request, status, error) { console.log(request); } }); });
问题是我的萤火虫抱怨说:
SyntaxError: invalid label
我的要求是这样的,因为我正在帮助我的客户对其他网站进行一些自定义分析,我需要在他的不同域的网页中放置一个脚本,以便将分析数据记录在主服务器中。我知道我需要使用rest接口进行通信,因此我采用这种方法。我不确定我是否采取了正确的方法并请求建议。我希望以一种客户端具有api密钥并且可以与我提供的api进行通信的方式来实现它。
还有其他办法吗?而不是jsonp?
答案 0 :(得分:0)
我看到这个字符串内容错误
url:'http:'http//uxaserver.local/alpha2_uxarmy/app/users/crossDomain' ,
应该是
url:'http//uxaserver.local/alpha2_uxarmy/app/users/crossDomain' ,