Backand.com - REST 期间出现随机错误 404 API
Backand.com - Random error 404 during REST API
对于一个网络应用程序,我使用 Backand.com 作为 MBAAS。
我创建了一个数据模型并链接了所有表。
如果我查询默认的 REST APIs 根本没有问题,但是如果我尝试调用自定义操作或自定义查询,服务器会随机回答错误 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}
});
}
从 Web 应用程序我使用此代码通过 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% 有效
这是错误:
Object {data: "Action not found, or is not on demand", status: 404, config: Object, statusText: "Not Found"}
只想知道:
- 该操作没有安全配置文件或角色或其他;
- 在调用此操作之前,Web 应用程序调用登录 API 以获取令牌
- 该操作不需要身份验证令牌,因为 public
调用登录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();
};
有什么想法吗?
谢谢
米歇尔
已修复!
这是一个与 Backand.com 网站上创建的 "App name" 相关的非常虚假的问题....
在 Backand.com 我创建了一个全名大写的应用程序,例如 "MYAPP" 所以当我在 Angular 配置 SDK 时我写了
Backand.setAppName("MYAPP);
然而 Backand.com 在网站上显示相同的名称,但在配置过程中它需要 仅小写 名称!没有人,即使在客户服务中,也不知道这个要求,所以很难理解如何修复...昨天我尝试了这种方式并且成功了...
Backand.setAppName("myapp");
综上所述,如果您遇到错误 404 而 URL 正确,则不会出现身份验证问题,请检查 APP NAME 是否为 ONLY LOWERCASE。
对于一个网络应用程序,我使用 Backand.com 作为 MBAAS。
我创建了一个数据模型并链接了所有表。
如果我查询默认的 REST APIs 根本没有问题,但是如果我尝试调用自定义操作或自定义查询,服务器会随机回答错误 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}
});
}
从 Web 应用程序我使用此代码通过 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% 有效
这是错误:
Object {data: "Action not found, or is not on demand", status: 404, config: Object, statusText: "Not Found"}
只想知道: - 该操作没有安全配置文件或角色或其他; - 在调用此操作之前,Web 应用程序调用登录 API 以获取令牌 - 该操作不需要身份验证令牌,因为 public
调用登录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();
};
有什么想法吗?
谢谢 米歇尔
已修复!
这是一个与 Backand.com 网站上创建的 "App name" 相关的非常虚假的问题....
在 Backand.com 我创建了一个全名大写的应用程序,例如 "MYAPP" 所以当我在 Angular 配置 SDK 时我写了
Backand.setAppName("MYAPP);
然而 Backand.com 在网站上显示相同的名称,但在配置过程中它需要 仅小写 名称!没有人,即使在客户服务中,也不知道这个要求,所以很难理解如何修复...昨天我尝试了这种方式并且成功了...
Backand.setAppName("myapp");
综上所述,如果您遇到错误 404 而 URL 正确,则不会出现身份验证问题,请检查 APP NAME 是否为 ONLY LOWERCASE。