Office Excel делает запрос CORS как междоменный запрос

Я пытаюсь сделать междоменный запрос из моей надстройки excel, как это предлагается здесь: http://dev.office.com/docs/add-ins/develop/addressing-same-origin-policy-ограничения

Я пытаюсь реализовать запрос cors. Однако всякий раз, когда я пытаюсь открыть свой запрос, я получаю ошибку отказа в доступе.

код, который я использую здесь для попытки открыть соединение, однако здесь я уже получаю сообщение об ошибке

 var xhr = new XMLHttpRequest();
xhr.open('GET', 'url'); //this line gives an acces denied error.
xhr.onload = function(e) {   

    }
xhr.send();

Может ли кто-нибудь сказать мне, можно ли реализовать запрос cors в Excel?

Код с ajax также дает объект ошибки

    $.ajax({
    type: 'GET',
    url: 'remoteurl',
    cache: true, 

    },
    success: function (result) {
        functionAfterLoad(JSON.parse(JSON.stringify(eval("(" +result + ")"))));

    },
    error: function(result) {
        console.error('Error while retrieving funnel HTML', result);
    },

});

Однако, когда я делаю вызов:

    $.ajax({
    type: 'GET',
    url: window.location.href ,
    cache: true, 

    },
    success: function (result) {
        functionAfterLoad(JSON.parse(JSON.stringify(eval("(" +result + ")"))));

    },
    error: function(result) {
        console.error('Error while retrieving funnel HTML', result);
    },

});

В результате я получаю html-страницу без каких-либо ошибок


person Ivan Sander de Jong    schedule 27.06.2016    source источник


Ответы (1)


В HTML5 Rocks есть несколько полезных советов по выполнению запросов CORS на стороне клиента. На сервере выполняется множество настроек CORS, но если предположить, что сервер настроен для разрешения вашего запроса, вам может потребоваться просто включить xhr.withCredentials = true; перед вызовом open.

person leetibbett    schedule 27.06.2016
comment
Эй, @leetibbett, я получаю ошибку во время выполнения с отказом в доступе, даже когда я добавляю xhr.withCredentials = true; флаг. - person Ivan Sander de Jong; 27.06.2016
comment
Разрешают ли ваши настройки IE CORS? См. ответ в этот пост, куда идти - person leetibbett; 27.06.2016
comment
Да, мои настройки ie позволяют использовать CORS, однако я не знаю, использует ли веб-просмотр excel все настройки ie? - person Ivan Sander de Jong; 27.06.2016
comment
Вот как выглядит ошибка вашего ответа: Origin ms-appx-web://‹some-GUID-here› не найден в заголовке Access-Control-Allow-Origin. XMLHttpRequest: ошибка сети 0x80070005, доступ запрещен. - person leetibbett; 27.06.2016
comment
я добавил ajax get в мой пример, здесь я получаю объект ошибки, содержащий Error: Доступ запрещен как текст ошибки - person Ivan Sander de Jong; 27.06.2016
comment
Попробуйте использовать Fiddler в качестве прокси-сервера. чтобы узнать, не проблема ли это на стороне сервера - person leetibbett; 27.06.2016
comment
Нет, это не запрос не попадает в скрипач, поэтому я думаю, что он заблокирован excel lrdy - person Ivan Sander de Jong; 27.06.2016
comment
У меня была такая же проблема, когда я переходил от проекта надстройки Excel к проекту с веб-API в том же решении VS. Запрошенный URL-адрес в моем запросе ajax: localhost:53454/Api/Coffees но Application Insights записывает «запрошенный URL-адрес» как localhost:53454/_api/ web/lists?$filter=TemplateFeatureId. Я подумал, что это странно и может помочь кому-то решить эту проблему? - person Danny122; 06.10.2016