HTTP выборка из надстроек Outlook

Мне нужно вызвать внешний веб-сервис, чтобы моя надстройка связывалась с Java-сервлетами нашей компании. Я пытался использовать JavaScript XMLHttpRequest:

var http = new XMLHttpRequest();
http.open( "GET", url2, true );
http.onreadystatechange = function(){
    console.log( 'Data: ' + http.responseText + '\nStatus: ' + http.status );
}

и указав основной сайт Google в белом списке:

<AppDomains>
    <AppDomain>https://www.google.com/</AppDomain>
</AppDomains>

попробовать, если это работает, но каждый раз, когда я запускаю его, вот что я получаю:

Failed to load https://www.google.com/: Redirect from 'https://www.google.com/' to
'https://www.google.es/?gfe_rd=cr&dcr=0&ei=TFjDWub9No-aX5TXg7AK' has been blocked
by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'https://localhost:3000' is therefore not allowed access.

Data: attachmentsSelectionScreen.html?recordName=A:223
Status: 0

Я искал, как сделать перекрестный HTTP-запрос специально для надстроек Outlook, и пришел в веб-службы Call из надстройки Outlook, учитывая, насколько близко его имя напоминает то, что мне нужно, но нашел там только информацию о том, как взаимодействовать с Сам Outlook (создать папку, пометить как нежелательную и т. Д.).

Как я могу, например, сделать простой запрос на https://www.google.com/ из моей надстройки и получить ответ?

Огромное спасибо!

1 ответ

Решение

Вы действительно в правильном направлении. Чтобы получить информацию из стороннего веб-сервиса, вам потребуется:

  • Сделать запрос с XMLHttpRequest или же $ajax, так далее.
  • Добавьте URL службы в манифест AppDomains список
  • Используйте только те сервисы, которые подключены через SSL (https://)

По сути, вы сделали, вы должны быть в состоянии получить информацию от службы. Все остальные проблемы, с которыми вы можете столкнуться, связаны с самой службой, а не с вашими звонками внутри надстройки. Например: Goo gle перенаправляет вас на https://www.google.es который не объявлен под вашим AppDomains список. Сам сервис может быть недоступен для предоставления какой-либо информации, и вы можете получить 403 ответ. Служба может не позволить CORS запрашивает или может разрешить это с определенной авторизацией через токены, лицензии и т. д. Следующие источники могут помочь вам получить больше информации по теме:

В основном это зависит от сервиса. Это причина, почему ppl обычно пишут свой собственный сервис, который разрешит запрос надстройки, потому что они имеют полный контроль над ним. Эта служба в то же время может выполнять определенные подзапросы к другим службам для получения необходимой информации.

Другие вопросы по тегам