0

对于一个网络应用程序,我使用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();
    };

任何想法?

谢谢米歇尔

4

1 回答 1

1

固定的!

这是一个与 Backand.com 网站上创建的“应用程序名称”相关的非常愚蠢的问题......

在 Backand.com 上,我创建了一个全名大写的应用程序,例如“MYAPP”,所以当我在 Angular 上配置 SDK 时,我写了

Backand.setAppName("MYAPP);

然而 Backand.com 在网站上显示相同的名称,但在配置期间它需要一个仅小写的名称!即使在客户服务部门,也没有人知道这个要求,所以很难理解如何解决......昨天我尝试了这种方式,它成功了......

Backand.setAppName("myapp");

总而言之,如果您有错误 404 并且 URL 正确,则没有身份验证问题检查 APP NAME 是否仅为 LOWERCASE

于 2016-10-27T10:56:43.920 回答