如何在执行Easy API时将参数值传递给模式名称?
问题描述:
我已经创建azure Easy API.I可以通过Invoke API客户端方法传递参数值。但是我的问题是无法在API.am中获取模式名称,从而导致意外的连接错误。如果输入manualy模式名称,我会得到结果。如何在执行Easy API时将参数值传递给模式名称?
IN my controller
$scope.saveuserdet = function (user) {
$scope.LicenceId = user.LicenceId;
$scope.username = user.username;
$scope.name = user.name;
var adduserclient = new WindowsAzure.MobileServiceClient('http//xxxxxxx');
adduserclient.invokeApi('APIname', {
body: null,
method: "post",
parameters: {
schemaname :'myschemaname',
license: $scope.LicenceId,
uname: $scope.username
}
}).done(function (results) {
var message = results.result.count + " item(s) marked as complete.";
}, function (error) {
$scope.showmessage = " Details are not Saved.Try Again";
});
};
module.exports = {
//"get": function (req, res, next) {
//}
"post": function (req, res, next) {
var query = {
// sql: 'EXEC **@schemaname.<Storedprocedurename>** @license,@uname ',
sql: 'EXEC **"'+ Myschema Name +'".<Storedprocedurename>** @license,@uname ',
parameters: [
{ name: 'schemaname', value: req.query.schemaname },
{ name: 'license', value: req.query.license },
{ name: 'uname', value: req.query.uname }]
};
req.azureMobile.data.execute(query).then(function (results) {
res.json(results);
});
}
};
答
我用你的关键代码段,以测试在我身边。它工作正常。如果您正在使用JavaScript Client Library for Azure Mobile Apps并通过网络服务器测试您的应用程序(在浏览器上通过访问Http://localhost:<port>
测试您的应用程序),则可能是由CORS问题引起的。您可以将您的本地出处设置到您的移动应用的CORS部分,在Azure门户上管理protal(https://ms.portal.azure.com)。
否则,您可以按下浏览器的F12,并在运行应用程序时确定是否有任何错误消息。
顺便说一句,因为您正在使用POST方法,我建议您通过body
参数传递您的数据。 E.G.,
client.invokeApi('APIname', {
method: "post",
body: {
schemaname :'myschemaname',
license: $scope.LicenceId,
uname: $scope.username
}
})
而在您的Easy APIs脚本中,您可以通过res.body
获取数据。
感谢它的工作.. – divya