对于一个网络应用我使用 Backand.com 作为MBAAS。
我创建了一个数据模型并链接了所有表。
如果我查询默认的REST API,则完全没有问题,但是如果我尝试调用自定义操作或自定义查询,服务器会随机回答错误404,找不到....
例如,我已将此自定义操作命名为: 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应用程序调用signin API来获取令牌 - 该操作不需要身份验证令牌,因为它是公开的
要调用signin 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();
};
有什么想法吗?
由于 米歇尔
答案 0 :(得分:1)
固定!
这是与Backand.com网站上创建的“App name”相关的一个非常虚拟的问题....
在Backand.com上我创建了一个名为大写的应用程序,如“MYAPP”,所以当我在Angular上配置SDK时我写了
Backand.setAppName("MYAPP);
然而,Backand.com在网站上显示相同的名称,但在配置期间,它需要 LOWERCASE ONLY 名称!没有人,即使是在客户服务中,也知道这个要求所以很难理解如何修复......昨天我尝试了这种方式并且它有效...
Backand.setAppName("myapp");
总而言之,如果您有错误404并且网址正确,那么如果APP NAME 仅限小一些,则不会检查身份验证问题。