对于一个网络应用程序,我使用Backand.com作为 MBAAS 。
我创建了一个数据模型并链接了所有表。
如果我查询默认的 REST API,则根本没有问题,但是如果我尝试调用自定义操作或自定义查询,服务器会随机回答错误 404 not found....
例如,我将这个自定义操作命名为:getCommentsByEvent
'use strict';
function backandCallback(userInput, dbRow, parameters, userProfile) {
// write your code here
return $http ({
method: 'GET',
url: CONSTS.apiUrl + '/1/query/data/getCommentsByEvent',
params: {
parameters: {
event_id: {{event_id}}
}
},
headers: {"Authorization": userProfile.token}
});
}
在网络应用程序中,我使用此代码通过 REST 调用它
service.commentsByEvent = function(p, s, r) {
$http({
method: 'GET',
url: Backand.getApiUrl() + '/1/objects/action/comments/?name=getCommentsByEvent',
params: {
parameters: {
event_id: p.eventId
}
}
}).then(s, r);
};
自定义操作是正确编写的,因为如果我尝试直接从 Backand.com 的测试页面调用它,它可以正常工作,但是如果我从我的网络应用程序尝试 80% 的时间它不起作用,20% 它可以工作
这是错误:
对象 {数据:“未找到操作,或者不是按需操作”,状态:404,配置:对象,状态文本:“未找到”}
只是要知道: - 该操作没有安全配置文件或角色或其他;- 在调用此操作 Web 应用程序之前调用登录 API 以获取令牌 - 该操作不需要身份验证令牌,因为是公开的
为了调用登录 API,我做了这个服务:
service.signin = function(email, password) {
//set the app name of Backand. In your app copy this to .config section with hard coded app name
Backand.setAppName($rootScope.appName);
//call Backand for sign in
return Backand.signin(email, password);
};
service.signout = function() {
return Backand.signout();
};
任何想法?
谢谢米歇尔