#azure #azure-mobile-services
#azure #azure-mobile-services
Вопрос:
Я хочу создать сообщение jquery ajax внутри моего метода получения API Azure mobile services. то есть что-то вроде того, что я привел ниже. То есть я хочу, чтобы метод GET возвращал данные, которые возвращают что-то из результата моего сообщения ajax.
Не очевидно, как я это сделаю.
exports.get = function(request, response) {
$.ajax({
type: "POST",
url: url,
data: data,
success: function(x) { return MYLIST },
dataType: dataType
});
response.send(statusCodes.OK, { message : 'Hello World!' });
};
Обновить:
Согласно сообщению Карлоса: http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/12/expanded-login-scopes-in-azure-mobile-services.aspx Теперь я понимаю, что код exports.get должен находиться в разделе API мобильной службы Azure. Когда я помещаю этот код в этот раздел, я получаю внутреннюю ошибку 500 в случае сбоя вызова jquery. мое предупреждение показывает, что я успешно вошел в Google.
var client = new WindowsAzure.MobileServiceClient('https://svcc.azure-mobile.net/', val);
$(document).ready(function () {
$("#submit1").click(function () {
client.login("google").done(function (results) {
alert("You are now logged in as google: " results.userId);
$.ajax({
url: "http://xxxxx.azure-mobile.net/api/test1",
success: function (data, textStatus) {
debugger;
//data - response from server
},
error: function (jqXHR, textStatus, errorThrown) {
debugger;
}
});
}, function (err) {
alert("Error: " err);
});
});
Ответ №1:
Вы должны использовать некоторые node.js модуль, который позволяет вам делать HTTP-запросы. Самым простым является модуль «запрос», который вы можете require
использовать в серверном скрипте и использовать его для отправки запросов. Например, этот код должен делать то, что вы хотите:
exports.get = function(request, response) {
var req = require('request');
req({
url: url,
method: 'POST',
body: JSON.stringify({ theBody: [ 'hello', 'world' ]}),
headers: { "Content-Type": "application/json" }
}, function(err, result) {
response.send(statusCodes.OK, result);
}
}
Комментарии:
1. чтобы получить другие данные из служб odata, таких как Google, будет ли это правильным решением? Есть ли способ получить доступ к ключевым / секретным данным Google, которые находятся в разделе azure identity в скриптах?
2. ПРИВЕТ, Карлос, проигнорируй мой комментарий выше. Теперь я понимаю ваш декабрьский пост намного лучше. Я обновил свой пример выше, включив вызов метода get из вашего примера, и теперь я получаю внутреннюю ошибку 500.
3. и еще один намек, identities равно null, — это ошибка, возникающая при вызове моего API test1. dl.dropbox.com/s/9cy44nb6topzrxp/az1.png
4. Я нашел другую статью Карлоса, в которой говорилось, что я должен был включить это в качестве функции предварительного просмотра. Я сделал это, и я все еще ничего не получаю от getIdentities. смотрите, как я включил. dl.dropbox.com/s/4amjcr1hpvebn2y/az2.png
5. обновлено изображение из комментария выше с включением функции предварительного просмотра для пользователей dl.dropbox.com/s/muohffefpnyfkz9/az3.png