2015-01-16 10 views
8

Ich habe nach Stunden dafür gesucht und kann keine einzige Sache finden, die die Frage beantwortet. Ich habe einen neuen Azure Machine Learning-Dienst erstellt und veröffentlicht und einen Endpunkt erstellt. Ich kann den Dienst mit dem Postman REST CLient aufrufen, aber der Zugriff über eine JavaScript-Webseite gibt ein Konsolenprotokoll zurück, das besagt, dass CORS für den Dienst aktiviert ist. Jetzt, für das Leben von mir, kann ich nicht herausfinden, wie man CORS für Azure Machine Learning-Dienste deaktiviert. Jede Hilfe wäre sehr geschätzt, danke!Azure Machine Learning - CORS

+0

Hallo Neil ermöglicht, Ich versuche, die Azure ML API als auch zu verwenden. Ich versuche es mit Ruby on Rails zu verwenden. Hattest du Erfolg mit JavaScript? –

+0

Hallo Tyrion, leider nein - immer noch auf eine Antwort darauf warten. Froh, dass jemand anderes sich auch dasselbe fragt! – Neil

+0

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

Antwort

4

Derzeit unterstützen wir nicht CORS auf API Seite zu deaktivieren, aber Sie können entweder die oben genannte Option verwenden, oder Sie können die API-Management-Service nutzen CORS zu deaktivieren. Die folgenden Links sollten Ihnen dabei helfen:

Hier sind die Links: step by step guide, auch diese video auf die Einstellung von Kopfzeilen und this doc auf Richtlinien.

API-Management-Service ermöglichen CORS, indem sie es in der API-Konfigurationsseite

+0

Das hilft - danke! Probieren Sie es aus – Neil

+0

Obwohl diese Antwort das OP-Problem löst, muss die Tatsache, dass ein Azure ML-Web-Service bereits veröffentlicht (und kostet echtes Geld) in einem Azure API-Management-Service (der noch mehr Geld kostet) verpackt werden, nur um zu überwinden fehlende Funktion im zugrunde liegenden Azure ML-Dienst (CORS deaktivieren) ist bestenfalls moralisch abstoßend. – tatlar

2

Sie müssen Ihren Browser mit --disable-web-security (Chrome das ist) starten. Hier einige jQuery, die mir erlaubt, den Dienst zu rufen nach dem erneuten Starten des Browsers mit --disable-Web-Sicherheit:

$(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); 
    }); 
}); 

, dass die Daten zurückgegeben. Hinweis: Stellen Sie sicher, dass diese Warnung in Chrome angezeigt wird. Ich habe es zunächst nicht getan, weil einige Chrome-Prozesse noch im Hintergrund liefen. Nach dem Töten dieser, Neustart mit dieser Flagge, sah die Nachricht, es funktionierte. (Chrome v40.something)

See: https://stackoverflow.com/a/6083677/896697

+0

-1: Das OP fragte ausdrücklich "Ich kann nicht herausfinden, wie CORS für Azure Machine Learning-Dienste deaktiviert werden kann". Das Deaktivieren der Sicherheit Ihres lokalen Browsers ist (inhärent) nicht sicher und keine Lösung für eine Produktionsanwendung, die den veröffentlichten Azure ML-Webdienst verwenden würde. – tatlar

Verwandte Themen