我正在开发一个必须与 Web 服务通信的网站。我正在使用这样的 Ajax 调用,例如,如果我想调用一个名为 getCustomer(...) 的方法,我在 Zend 项目中有一个名为“customer”的模块。
在我的控制器内部,我有一个名为“jsonAction”的动作
public function jsonAction() {
$this->_helper->viewRenderer->setNoRender();
$server = new Zend_Json_Server();
$server->setClass('Customer_Model_Customer');
$server->handle();
exit;
}
它们在我的模型中具有以下功能:
/**
* Get Customer
* @param string $customerNr
* @return object
*/
public function getCustomer($customerNr){
/*....*/
}
所以我想使用 Ajax 调用来调用这个函数。我所做的是这样的:
getCustomer : function(customerNr){
if(customerNr == null)
return;
var request = {};
request.method = "getCustomer";
request.params = {};
request.params.customerNr = customerNr;
request.id = Math.floor(Math.random()*101);
postObject(webServicesURL, JSON.stringify(request), successGetCustomer);
},
其中 postObject 是 Ajax 函数:
function postObject(url, request, successCallback){
try{
$.ajax({
type: "POST",
dataType: 'json',
url: url,
contentType: "application/x-www-form-urlencoded",
data: request,
xhrFields: {
withCredentials: true
},
success: function(data){
successCallback(data);
},
error: function (data) {
/*Notify error*/
}
});
} catch(ex){
/*erro*/
}
}
我的问题是,还有另一种方法可以做到这一点吗?最好和优雅的方式?我是网络开发的新手,这就是为什么我要寻求您的帮助。
注意:我使用的是 php Zend 框架 1.12、Ember 1.0 和 JQuery 1.8