我在cakephp中完成了所有操作。我在客户端使用平台,现在我决定迁移到Ionic / angularjs,但正如我所看到的,他们不会互相“交谈”。 Angular使用Content-Type:application / json,cakePHP不会使用request-> data或request->查询读取。
我找到了一些解决方法,我需要更改服务器端的所有操作。有没有其他方法可以保持它没有变化?我也想让它在旧的客户端版本中运行。
将帖子 在algularjs我使用$ http服务。
答案 0 :(得分:0)
我不确定我理解你的问题。
如果您通过发布请求将json数据发送到服务器,则可以轻松获取带有cakephp应用程序的数据:
jsonData = {data: [{key: 'a', value: 'b'}, {key: 'a', value: 'b'}]};
var req = {
method: 'POST',
url: 'http://example.com/Tests',
data: jsonData
}
$http(req);
然后在您的控制器中,您可以获取数据:
class MyController extends AppController{
// ...
public function action(){
debug($this->request->data);
// you have your data from your angularjs app
// ['data' => [['key' => 'a', value => 'b'], ['key' => 'a', value => 'b']]];
}
答案 1 :(得分:0)
我解决了将$ http标题更改为“application / x-www-form-urlencoded”的问题,我看到了post
body = 'cel=xxxx&pass=zczx';
var req = {
method: 'POST',
url: 'http://localhost/cakefacility/usuarios/checkUsuario.json',
data: body,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
$http(req);
答案 2 :(得分:0)
对于从angular到cakephp项目发送数据,您需要在cakephp项目中创建REST API以创建REST API,您可以按照我的分叉github repo进行操作。
在cakephp项目中创建API后,您只需调用API,如:
对于GET的Call API:
$http.get("<REST API URL>").then(function(response) {
......
......
});
对于POST的Call API:
$http.post(<REST API URL>, <DATA TO SEND>).success(function(data, status) {
.......
.......
});