2015-01-16 142 views
8

我已經搜索了這個小時,並找不到一個答案的問題。我創建併發布了一個新的Azure機器學習服務,並創建了一個端點。我可以使用Postman REST CLient調用該服務,但通過JavaScript網頁訪問該服務會返回一個控制檯日誌,說明爲該服務啓用了CORS。現在,對於我來說,我無法弄清楚如何禁用CORS for Azure機器學習服務。任何幫助將不勝感激,謝謝!Azure機器學習 - CORS

+0

嗨尼爾,我也嘗試使用Azure ML API。我正在嘗試將它與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

目前,我們不支持禁用的API側CORS,但您可以使用上面的選項,或者您可以使用API​​管理服務禁用CORS。下面的鏈接可以幫助您解決此問題

以下是鏈接:step by step指南,還有這個video關於設置標題,以及this doc的政策。

API管理服務允許通過在API配置頁面中啓用CORS

+0

這有助於 - 謝謝!將嘗試它 – Neil

+0

雖然這個答案解決了OP的問題,但已經發布(並花費真錢)的Azure ML Web服務必須被包裝在Azure API管理服務(花費更多資金)中,以便克服在底層Azure ML服務中缺少的功能(禁用CORS)在道德上充其量是道德上令人厭惡的。 – tatlar

2

你必須從--disable-web-security(即Chrome)開始你的瀏覽器。下面是一些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進程仍在後臺運行。在殺死那些人之後,用那面旗幟重新開始,看到這個消息,它就起作用了。 (鉻v40.something)

參見:https://stackoverflow.com/a/6083677/896697

+0

-1:OP特意問「我不知道如何禁用Azure機器學習服務的CORS」。禁用本地瀏覽器安全性(本質上)不安全,而不是使用Azure ML發佈的Web服務的生產應用程序的解決方案。 – tatlar