Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O navegador ou o controle do modo de exibição da Web impõe a política de mesma origem, que impede que um script carregado de um domínio obtenha ou manipule propriedades de uma página da Web de outro domínio. Essa política significa que, por padrão, o domínio de uma URL solicitada deve ser o mesmo que o domínio da página da Web atual. Por exemplo, essa política impede que uma página da Web em um domínio faça chamadas de serviço Web XmlHttpRequest para um domínio diferente daquele em que está hospedada.
Como os Suplementos do Office são hospedados em um controle de modo de exibição da Web, a política de mesma origem também se aplica ao script em execução em suas páginas da Web.
A política de mesma origem pode ser um deficiente em várias situações, como quando um aplicativo web hospeda conteúdo e as APIs em vários subdomínios desnecessários. Você pode usar algumas técnicas comuns para superar com segurança a imposição da política de mesma origem. Este artigo fornece apenas uma breve introdução a alguns deles. Use os links fornecidos para começar a pesquisar essas técnicas.
Implemente o código servidor usando um esquema de autorização do token
Uma maneira de lidar com as limitações da política de mesma origem é fornecer código do lado do servidor que use fluxos OAuth 2.0 para permitir que um domínio obtenha acesso autorizado a recursos hospedados em outro.
Use o CORS (compartilhamento de recursos entre origens)
Para saber mais sobre o compartilhamento de recursos entre origens, confira os muitos recursos disponíveis na Web, como o CORS (Compartilhamento de Recursos entre Origens).
Observação
Se o seu suplemento usa ativação baseada em eventos ou relatórios de spam integrados no Outlook, você também deve configurar um URI conhecido para habilitar o CORS ou o SSO. Para obter detalhes, consulte Usar SSO (logon único) ou CORS (compartilhamento de recursos entre origens) em seu Suplemento do Office baseado em eventos ou com geração de relatórios de spam.
Crie seu próprio proxy usando iframe e postMessage (mensagens entre janelas)
Para obter um exemplo de como criar seu próprio proxy usando iframe e postMessage, consulte Mensagens entre janelas.
Use JSONP para acesso anônimo
Outra maneira de superar as limitações da política de mesma origem é usar o JSONP para fornecer um proxy para o serviço Web. Faça isso incluindo uma marca script com um atributo src que aponta para alguns scripts hospedados em qualquer domínio. Você pode criar as marcas script, criar dinamicamente a URL para apontar para o atributo src e passar parâmetros para a URL por meio de parâmetros de consulta de URI. Os provedores de serviços Web criam e hospedam o código JavaScript em URLs específicas e retornam scripts diferentes, dependendo dos parâmetros de consulta de URI. Em seguida, esses scripts serão executados onde estiverem inseridos e funcionarão como esperado.
O exemplo de JSONP a seguir usa uma técnica que funciona em qualquer suplemento do Office.
// Dynamically create an HTML SCRIPT element that obtains the details for the specified video.
function loadVideoDetails(videoIndex) {
// Dynamically create a new HTML SCRIPT element in the webpage.
const script = document.createElement("script");
// Specify the URL to retrieve the indicated video from a feed of a current list of videos,
// as the value of the src attribute of the SCRIPT element.
script.setAttribute("src", "https://gdata.youtube.com/feeds/api/videos/" +
videos[videoIndex].Id + "?alt=json-in-script&callback=videoDetailsLoaded");
// Insert the SCRIPT element at the end of the HEAD section.
document.getElementsByTagName('head')[0].appendChild(script);
}
Observação
JSONP é uma técnica herdada que tem maior risco de segurança do que as alternativas modernas. Use JSONP somente se precisar manter integrações mais antigas que ainda não podem ser migradas. Para novas atividades de desenvolvimento, prefira CORS ou um proxy do lado do servidor.