#.net #web-services #azure #cors
#.net #веб-сервисы #azure #cors
Вопрос:
мы сталкиваемся с проблемой разрешений, и на какую бы страницу мы ни смотрели, мы, похоже, не можем заставить ее работать. У нас есть две части. Мобильная служба в Azure и веб-страница (клиент). Вызывается веб-сервис «https://mobileservice.azure-mobile.net/tables/program …. и веб-страница клиента называется «http://azure-webservicesclient.azurewebsites.net «.
Мы включили «https://mobileservice.azure-mobile.net «
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<system.webServer>
Но, похоже, это не работает, оно по-прежнему выдает ошибку: 404 (не найдено) В запрошенном источнике отсутствует заголовок access-control-allow-origin’. Мы также следовали руководству «http://www.codeguru.com/csharp/.net/net_asp/using-cross-origin-resource-sharing-cors-in-asp.net-web-api.html » но результат тот же.
Пожалуйста, посмотрите здесь наш код, у кого-нибудь есть идеи, что не так?
<!-- WinJS code -->
<script src='http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.1.2.min.js'></script>
<script>
$(function () {var client = new WindowsAzure.MobileServiceClient('https://mobileservice.azure-mobile.net/', '*****KEY********'),
todoItemTable = client.getTable('program');
console.log(todoItemTable.read());
// Read current data and rebuild UI.
// If you plan to generate complex UIs like this, consider using a JavaScript templating library.
function refreshTodoItems() {
var query = todoItemTable.where({ id_program: 21 });
query.read().then(function (todoItems) {
//var listItems = $.map(todoItems, function (item) {
// return $('<li>')
// .attr('data-todoitem-id', item.id)
// .append($('<button class="item-delete">Delete</button>'))
// .append($('<div>').append($('<input class="item-text">').val(item.text)));
//});
console.log(todoItems);
//$('#todo-items').empty().append(listItems).toggle(listItems.length > 0);
//$('#summary').html('<strong>' todoItems.length '</strong> item(s)');
}, handleError);
}
// On initial load, start by fetching the current data
// refreshTodoItems();
});
</script>
Ответ №1:
Чтобы включить CORS в Azure Mobile Services, вы используете ASP.NET Пакет веб-API CORS NuGet:
http://www.nuget.org/packages/Microsoft.AspNet.WebApi.Cors/5.1.2
На данный момент вы должны включить его, используя этот трюк:
https://gist.github.com/HenrikFrystykNielsen/6c934be6c6c8fa9e4bc8
Вскоре мы предоставим встроенную поддержку CORS, чтобы вам не приходилось включать ее самостоятельно.
Надеюсь, это поможет,
Хенрик