Criteri tra domini di Gestione APIAPI Management cross domain policies

Questo argomento fornisce un riferimento per i seguenti criteri di Gestione API.This topic provides a reference for the following API Management policies. Per informazioni sull'aggiunta e sulla configurazione dei criteri, vedere Criteri di Gestione API.For information on adding and configuring policies, see Policies in API Management.

Criteri tra dominiCross domain policies

  • Permetti chiamate tra i domini : rende accessibile l'API da client Adobe Flash e Microsoft Silverlight basati su browser.Allow cross-domain calls - Makes the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.
  • CORS : aggiunge il supporto per CORS (Cross-Origin Resource Sharing) a un'operazione o a un'API per permettere le chiamate tra domini da client basati su browser.CORS - Adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.
  • JSONP : aggiunge il supporto per JSON con riempimento (JSONP) a un'operazione o a un'API per permettere le chiamate tra domini da client JavaScript basati su browser.JSONP - Adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients.

Permetti chiamate tra i dominiAllow cross-domain calls

Usare il criterio cross-domain pe rendere accessibile l'API da client Adobe Flash e Microsoft Silverlight basati su browser.Use the cross-domain policy to make the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.

Istruzione del criterioPolicy statement

<cross-domain>  
   <!-Policy configuration is in the Adobe cross-domain policy file format,   
      see http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html-->  
</cross-domain>  

EsempioExample

<cross-domain>  
    <cross-domain-policy>  
        <allow-http-request-headers-from domain='*' headers='*' />  
    </cross-domain-policy>  
</cross-domain>  

ElementiElements

NomeName DescrizioneDescription ObbligatorioRequired
cross-domaincross-domain Elemento radice.Root element. Gli elementi figlio devono essere conformi alla specifica dei file di criteri tra domini Adobe.Child elements must conform to the Adobe cross-domain policy file specification. Yes

UtilizzoUsage

Questo criterio può essere usato nelle sezioni e negli ambiti del criterio seguenti.This policy can be used in the following policy sections and scopes.

  • Sezioni del criterio: in ingressoPolicy sections: inbound
  • Ambiti del criterio: globaliPolicy scopes: global

CORSCORS

Il criterio cors aggiunge il supporto per CORS (Cross-Origin Resource Sharing) a un'operazione o a un'API per permettere le chiamate tra domini da client basati su browser.The cors policy adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.

CORS permette a un browser e a un server di interagire e di determinare se permettere o meno richieste specifiche con origini diverse, ad esempio chiamate XMLHttpRequests effettuate da JavaScript in una pagina Web in altri domini.CORS allows a browser and a server to interact and determine whether or not to allow specific cross-origin requests (i.e. XMLHttpRequests calls made from JavaScript on a web page to other domains). Ciò offre una maggiore flessibilità rispetto a permettere solo richieste con la stessa origine e una maggiore sicurezza rispetto a permettere tutte le richieste con origini diverse.This allows for more flexibility than only allowing same-origin requests, but is more secure than allowing all cross-origin requests.

Istruzione del criterioPolicy statement

<cors allow-credentials="false|true">  
    <allowed-origins>  
        <origin>origin uri</origin>  
    </allowed-origins>  
    <allowed-methods preflight-result-max-age="number of seconds">  
        <method>http verb</method>  
    </allowed-methods>  
    <allowed-headers>  
        <header>header name</header>  
    </allowed-headers>  
    <expose-headers>  
        <header>header name</header>  
    </expose-headers>  
</cors>  

EsempioExample

In questo esempio viene illustrato come supportare richieste preliminari, ad esempio quelle con intestazioni personalizzate o metodi diversi da GET e POST.This example demonstrates how to support pre-flight requests, such as those with custom headers or methods other than GET and POST. Per supportare le intestazioni personalizzate e altri verbi HTTP, consultare le sezioni allowed-methods e allowed-headers come illustrato nell'esempio seguente.To support custom headers and additional HTTP verbs, use the allowed-methods and allowed-headers sections as shown in the following example.

<cors allow-credentials="true">  
    <allowed-origins>  
        <!-- Localhost useful for development -->  
        <origin>http://localhost:8080/</origin>  
        <origin>http://example.com/</origin>  
    </allowed-origins>  
    <allowed-methods preflight-result-max-age="300">  
        <method>GET</method>  
        <method>POST</method>  
        <method>PATCH</method>  
        <method>DELETE</method>  
    </allowed-methods>  
    <allowed-headers>  
        <!-- Examples below show Azure Mobile Services headers -->  
        <header>x-zumo-installation-id</header>  
        <header>x-zumo-application</header>  
        <header>x-zumo-version</header>  
        <header>x-zumo-auth</header>  
        <header>content-type</header>  
        <header>accept</header>  
    </allowed-headers>  
    <expose-headers>  
        <!-- Examples below show Azure Mobile Services headers -->  
        <header>x-zumo-installation-id</header>  
        <header>x-zumo-application</header>  
    </expose-headers>  
</cors>  

ElementiElements

NomeName DescrizioneDescription ObbligatorioRequired DefaultDefault
CORScors Elemento radice.Root element. Yes N/DN/A
allowed-originsallowed-origins Contiene elementi origin che descrivono le origini consentite per le richieste tra domini.Contains origin elements that describe the allowed origins for cross-domain requests. allowed-origins può contenere un unico elemento origin che specifichi * per consentire qualsiasi origine oppure uno o più elementi origin che contengano un URI.allowed-origins can contain either a single origin element that specifies * to allow any origin, or one or more origin elements that contain a URI. Yes N/DN/A
originorigin Il valore può essere * per consentire tutte le origini oppure un URI che specifichi una singola origine.The value can be either * to allow all origins, or a URI that specifies a single origin. L'URI deve includere uno schema, un host e una porta.The URI must include a scheme, host, and port. Yes Se la porta viene omessa in un URI, vengono utilizzate la porta 80 per HTTP e la porta 443 per HTTPS.If the port is omitted in a URI, port 80 is used for HTTP and port 443 is used for HTTPS.
allowed-methodsallowed-methods Questo elemento è obbligatorio se sono consentiti metodi diversi da GET o POST.This element is required if methods other than GET or POST are allowed. Contiene elementi method che specificano i verbi HTTP supportati.Contains method elements that specify the supported HTTP verbs. NoNo Se questa sezione non è presente, sono supportati i metodi GET e POST.If this section is not present, GET and POST are supported.
staticomethod Specifica un verbo HTTP.Specifies an HTTP verb. È richiesto almeno un elemento method se è presente la sezione allowed-methods.At least one method element is required if the allowed-methods section is present. N/DN/A
allowed-headersallowed-headers Questo elemento contiene elementi header che specificano i nomi delle intestazioni che è possibile includere nella richiesta.This element contains header elements specifying names of the headers that can be included in the request. NoNo N/DN/A
expose-headersexpose-headers Questo elemento contiene elementi header che specificano i nomi delle intestazioni accessibili dal client.This element contains header elements specifying names of the headers that will be accessible by the client. NoNo N/DN/A
intestazioneheader Specifica un nome di intestazione.Specifies a header name. È richiesto almeno un elemento header in allowed-headers se è presente la sezione expose-headers.At least one header element is required in allowed-headers or expose-headers if the section is present. N/DN/A

AttributiAttributes

NomeName DescrizioneDescription ObbligatorioRequired DefaultDefault
allow-credentialsallow-credentials L'intestazione Access-Control-Allow-Credentials nella risposta preliminare verrà impostata sul valore di questo attributo e influirà sulla capacità del client di inviare credenziali in richieste tra domini.The Access-Control-Allow-Credentials header in the preflight response will be set to the value of this attribute and affect the client’s ability to submit credentials in cross-domain requests. NoNo falsefalse
preflight-result-max-agepreflight-result-max-age L'intestazione Access-Control-Max-Age nella risposta preliminare verrà impostata sul valore di questo attributo e influirà sulla capacità dell'agente utente di memorizzare nella cache la risposta preliminare.The Access-Control-Max-Age header in the preflight response will be set to the value of this attribute and affect the user agent’s ability to cache pre-flight response. NoNo 00

UtilizzoUsage

Questo criterio può essere usato nelle sezioni e negli ambiti del criterio seguenti.This policy can be used in the following policy sections and scopes.

  • Sezioni del criterio: in ingressoPolicy sections: inbound
  • Ambiti del criterio: API, operazionePolicy scopes: API, operation

JSONPJSONP

Il criterio jsonp aggiunge il supporto per JSON con riempimento (JSONP) a un'operazione o a un'API per permettere le chiamate tra domini da client JavaScript basati su browser.The jsonp policy adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients. JSONP è un metodo usato in programmi JavaScript per richiedere dati da un server in un dominio diverso.JSONP is a method used in JavaScript programs to request data from a server in a different domain. JSONP supera le limitazioni applicate dalla maggior parte dei Web browser, in cui l'accesso alle pagine Web deve essere effettuato nello stesso dominio.JSONP bypasses the limitation enforced by most web browsers where access to web pages must be in the same domain.

Istruzione del criterioPolicy statement

<jsonp callback-parameter-name="callback function name" />  

EsempioExample

<jsonp callback-parameter-name="cb" />  

Se si chiama il metodo senza il parametro di callback ?cb=XXX restituirà JSON semplice, senza wrapper di chiamata della funzione.If you call the method without the callback parameter ?cb=XXX it will return plain JSON (without a function call wrapper).

Se si aggiunge il parametro di callback ?cb=XXX, restituirà un risultato JSONP, eseguendo il wrapping dei risultati JSON originali intorno alla funzione di callback, ad esempio XYZ('<json result goes here>');If you add the callback parameter ?cb=XXX it will return a JSONP result, wrapping the original JSON results around the callback function like XYZ('<json result goes here>');

ElementiElements

NomeName DescrizioneDescription ObbligatorioRequired
jsonpjsonp Elemento radice.Root element. Yes

AttributiAttributes

NomeName DescrizioneDescription ObbligatorioRequired DefaultDefault
callback-parameter-namecallback-parameter-name Funzione JavaScript tra domini che ha come prefisso il nome completo del dominio in cui si trova la funzione.The cross-domain JavaScript function call prefixed with the fully qualified domain name where the function resides. Yes N/DN/A

UtilizzoUsage

Questo criterio può essere utilizzato nelle sezioni e negli ambiti di criteri seguenti.This policy can be used in the following policy sections and scopes.

  • Sezioni del criterio: in uscitaPolicy sections: outbound
  • Ambiti del criterio: globale, prodotto, API, operazionePolicy scopes: global, product, API, operation

Passaggi successiviNext steps

Per altre informazioni sull'uso di questi criteri, vedere:For more information working with policies, see: