0
애저 API 관리의 최상위 범위에서 다음 CORS 정책을 제공 :푸른 API 관리 - CORS 문제
<policies>
<inbound>
<cors>
<allowed-origins>
<origin>*</origin>
</allowed-origins>
<allowed-methods>
<method>*</method>
</allowed-methods>
<allowed-headers>
<header>*</header>
</allowed-headers>
<expose-headers>
<header>*</header>
</expose-headers>
</cors>
</inbound>
<backend>
<forward-request />
</backend>
<outbound />
</policies>
사용 :
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://mydomain.azure-api.net/calc/add?a=5&b=5');
xhr.send();
원시 요청 :
GET https://mydomain.azure-api.net/calc/add?a=5&b=5 HTTP/1.1
Host: mydomain.azure-api.net
Connection: keep-alive
Origin: https://any.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept: */*
Referer: https://any.com/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8,de;q=0.6,pl;q=0.4
오류 메시지가 표시됩니다.
XMLHttpRequest cannot load https://mydomain.azure-api.net/calc/add?a=5&b=5. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://any.com' is therefore not allowed access. The response had HTTP status code 401.
원시 응답 : 나는 성공 메시지를 수신하고
GET https://mydomain.azure-api.net/calc/add?a=5&b=5 HTTP/1.1
Host: mydomain.azure-api.net
Connection: keep-alive
Origin: https://any.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Ocp-Apim-Subscription-Key: **********************
Accept: */*
Referer: https://any.com/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8,de;q=0.6,pl;q=0.4
:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://mydomain.azure-api.net/calc/add?a=5&b=5');
xhr.setRequestHeader('Ocp-Apim-Subscription-Key', '**********************');
xhr.send();
원시 요청 : 최대한 빨리 올바른 API 키를 사용할 때
HTTP/1.1 401 Access Denied
Content-Length: 152
Content-Type: application/json
WWW-Authenticate: AzureApiManagementKey realm="https://mydomain.azure-api.net/calc",name="Ocp-Apim-Subscription-Key",type="header"
Date: Fri, 04 Nov 2016 09:31:15 GMT
{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
.
원시 응답 :
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 123
Content-Type: application/xml; charset=utf-8
Expires: -1
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Length,Date,Server,X-AspNet-Version,X-Powered-By
Date: Fri, 04 Nov 2016 09:34:44 GMT
<result><value>10</value><broughtToYouBy>Azure API Management - http://azure.microsoft.com/apim/ </broughtToYouBy></result>
질문 :
그것은 잘못된/더 API 키가 푸른 API 관리에서이 예상되는 동작이며, 제공되지 않는 경우에만 발생 CORS 문제처럼 나에게 보이나요?
API 키가 없어도 작동하지 않을 것으로 기대하고 있지만 API 키를 사용하지 않고 쿼리하는 동안 브라우저 콘솔에 CORS 메시지가 표시되지 않습니다 (IE, Firefox, Chrome 및 기타 여러 제품에서 발생). .. –