【发布时间】:2017-04-28 20:46:34
【问题描述】:
我正在使用 Angular js 调用动作函数。我调用动作函数并正确接收参数,但是当我尝试响应 JsonModel 时,我不知道为什么 Zend Framework 使用 ViewModel 响应。我认为是因为 Zend Framework 没有检测到来自 Angular JS 的 Ajax 调用。那么,我如何调用我的操作函数,而 Zend Framework 会像 Ajax 调用一样检测到这个调用?
角度 js:
self.sendData = function(url, data){
var promise = $q.defer();
console.log("Dentro de senDAta!!!");
var config = {
headers : {
"Accept" : "application\json",
"Content-Type" : "application\json"
},
resposeType : "json"
};
$http.post(url, data, config).success(function(response, status, headers, config){
console.log("dentro de success!!!");
promise.resolve(response);
}).error(function(data){
//Error de sistemas
console.log("Error en sendData: " + data);
});
return promise.promise;
};
/application/config/module.config.php
return [
//...
'view_manager' => [
//...
'strategies' => [
'ViewJsonStrategy',
],
],
];
/Controller/LoginController.php
public function loginAction(){
$request = $this->getRequest();
$log = new \File\LogWriter();
$log->writeLog(get_class($this) . "::" . __FUNCTION__ . ": Dentro de loginAction()");
if ($this->getRequest()->isXmlHttpRequest() === true){
$log->writeLog(get_class($this) . "::" . __FUNCTION__ . ": Llamada hecha por Ajax");
}else{
$log->writeLog(get_class($this) . "::" . __FUNCTION__ . ": Llamada no hecha por ajax");
}
$params = json_decode(file_get_contents('php://input'),true);
$email = $params["email"];
$password = $params["password"];
$log->writeLog(get_class($this) . "::" . __FUNCTION__ . ": email: " . $email . " password: " . $password);
$user = new User($email);
return new JsonModel([
"result" => 0
]);
}
【问题讨论】:
标签: php angularjs zend-framework3