2016-07-14 7 views
0

Привет, я застрял и как-то не нашел решение. Кажется простым, но хорошо. Вот оно. У меня есть мобильная служба в Azure, и я хочу достичь этого с помощью javascript. Как мне обойти 401 Unauthorized? Я пробовал с документацией от MS, но не повезло. Это то, что я получил до сих пор (добавление ключа к URL не работает, конечно), что я могу добавить, чтобы заставить его работать?Azure Mobile Service и Javascript

var client = new WindowsAzure.MobileServiceClient(
"https://cdshop.azure-mobile.net/", 
"vGpqzyApJXXXXXXXXblQCWne73" 
); 

var getJSON = function (url, callback) { 
var xhr = new XMLHttpRequest(); 
xhr.open('get', url, true); 
xhr.responseType = 'json'; 
xhr.onload = function() { 
    var status = xhr.status; 
    if (status == 200) { 
     callback(null, xhr.response); 
    } else { 
     callback(status); 
    } 
}; 
xhr.send(); 
}; 


$(function() { 
$('#clickme').click(function() { 

    getJSON('http://cdshop.azure-mobile.net/api/cds/total?key=vGpqzyApJXXXXXXXXblQCWne73', function (err, data) { 
if (err != null) { 
    alert('Something went wrong: ' + err); 
} else { 
    alert('Your Json result is: ' + data.result); 
    result.innerText = data.result; 
} 
    }); 
}); 
}); 

ответ

1

Если вы создаете свои собственные запросы HTTP, необходимо установить заголовок запроса под названием X-ZUMO-ЗАЯВКА с ключом приложения, например, «vGpqzyApJXXXXXXXXblQCWne73», для таблиц и API, которые настроены на «приложение» или «пользователи». (Предполагая, что вы по-прежнему используете мобильные службы, новая служба приложений не использует заголовок X-ZUMO-APPLICATION.) Таблицы и API, установленные для «пользователей», также нуждаются в заголовке запроса X-ZUMO-AUTH с токеном аутентификации пользователя.

В качестве альтернативы вы можете использовать MobileServiceClient, который вы создали в первой строке, и он сделает это за вас. This page имеет примеры для вызова API и таблиц. Для вашего примера:

client.invokeApi("cds", { 
    body: null, 
    method: "get" 
}).done(function (data) { 
    alert('Your Json result is: ' + data.result); 
    result.innerText = data.result; 
}, function(error) { 
    alert('Something went wrong: ' + error); 
}); 
+0

Большое спасибо Эрик, он работал как шарм –