私はこれを何時間も検索しましたが、質問に答えるものが1つも見つかりません。新しい Azure Machine Learning サービスを作成して公開し、エンドポイントを作成しました。Postman REST CLIent を使用してサービスを呼び出すことはできますが、JavaScript Web ページ経由でアクセスすると、サービスに対して CORS が有効になっていることを示すコンソール ログが返されます。今のところ、Azure Machine Learning サービスの CORS を無効にする方法がわかりません。どんな助けでも大歓迎です、ありがとう!
3 に答える
現在、API 側での CORS の無効化はサポートされていませんが、上記のオプションを使用するか、API 管理サービスを使用して CORS を無効にすることができます。以下のリンクはこれに役立ちます
リンクは次のとおりです。ステップバイステップガイド、ヘッダーの設定に関するこのビデオ、およびポリシーに関するこのドキュメント。
API Management サービスは、API 構成ページで CORS を有効にすることで CORS を許可します
ブラウザを起動する必要があります--disable-web-security
( Chrome つまり )。--disable-web-security を使用してブラウザを再起動した後にサービスを呼び出すことができる jQuery を次に示します。
$(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)
Azure ML Book からの抜粋 (役に立つかもしれません):
この CORS 制限は、さまざまな (Web) クライアントのデプロイ、テスト、および運用のために Azure Machine Learning Web サービスを十分に活用したい場合、独自のサーバー側アプリケーションをホストする必要があることを意味します。基本的に 2 つの選択肢があります。
- ASP.NET Web ページなどの Web アプリケーションをホストし、Azure Machine Learning Web サービス サーバー側を呼び出して、現在の Azure Machine Learning CORS 制限に準拠します。
- CORS サポートを提供する独自の Web サービスをホストし、REST や JSON などの最新のプロトコルとデータ形式を介して、さまざまな Web クライアントやモバイル クライアントに代わって Azure Machine Learning Web サービスを呼び出すことができます。