2015-01-16 3 views
8

Я искал часы для этого и не могу найти ни одной вещи, которая отвечает на вопрос. Я создал и опубликовал новую услугу Azure Machine Learning и создал конечную точку. Я могу вызвать службу с помощью Postman REST CLient, но доступ к ней через веб-страницу JavaScript возвращает консольный журнал, в котором говорится, что CORS включен для службы. Теперь, для жизни меня, я не могу понять, как отключить CORS для услуг Azure Machine Learning. Любая помощь будет очень признательна, спасибо!Azure Machine Learning - CORS

+0

Привет Нил, Я пытаюсь использовать API Azure ML, а также. Я пытаюсь использовать его с Ruby on Rails. Удалось ли вам с JavaScript? –

+0

Привет, Тирион, к сожалению, нет, все еще жду ответа на это. Рад, что кто-то еще тоже удивляется тому же! – Neil

+0

http://stackoverflow.com/questions/27576426/connect-to-microsoft-azure-machine-learning-studio-api-with-ruby-instead-of-pyth –

ответ

4

В настоящее время мы не поддерживаем отключение CORS на стороне API, но вы можете использовать либо выше вариант, или вы можете использовать службу управления API, чтобы отключить CORS. Ссылки ниже должны помочь вам с этим

Вот ссылки: step by step руководство, также это video на заголовках настроек, и this doc о политике.

службы управления API позволяют CORS путем включения его в страницу конфигурации API

+0

Это помогает - спасибо! Попробуем это сделать – Neil

+0

Хотя этот ответ решает проблему OP, тот факт, что веб-сервис Azure ML уже опубликован (и стоить реальные деньги), должен быть завернут в службу управления Azure API (которая стоит еще больше денег), чтобы преодолеть недостающая функция в базовом сервисе Azure ML (отключение CORS) в лучшем случае морально отвратительна. – tatlar

2

Вам необходимо запустить ваш браузер с --disable-web-security (Chrome, который есть). Вот некоторые JQuery, которые позволили мне вызвать службу после повторного запуска моего браузера с --disable-веб-безопасностью:

$(document).ready(function() { 
    var ajaxData = "-- the request body "; 
    var serviceUrl = "https://ussouthcentral.services.azureml.net/workspaces/00e36959fc3e4673a32eae9f9b184346/--whatever"; 

    $.ajax({ 
     type: "POST", 
     url: serviceUrl, 
     data: ajaxData, 
     headers: { 
      "Authorization": "Bearer --API KEY HERE--", 
      "Content-Type": "application/json;charset=utf-8" 
     } 
    }).done(function (data) { 
     console.log(data); 
    }); 
}); 

возвратившего данные. ПРИМЕЧАНИЕ. Убедитесь, что вы видите это предупреждение в Chrome. Я не кулаком, потому что некоторые процессы Chrome все еще работали в фоновом режиме. После того, как они были убиты, перезагрузка с этим флагом, увидев сообщение, сработала. (Chrome v40.something)

См: https://stackoverflow.com/a/6083677/896697

+0

-1: ОП задал конкретно «Я не могу понять, как отключить CORS для обслуживания Azure Machine Learning». Отключение защиты локального браузера (по своей сути) небезопасно, а не решение для производственного приложения, которое будет использовать опубликованный веб-сервис Azure ML. – tatlar

Смежные вопросы