2016-12-13 3 views
0

У меня есть некоторые проблемы с компонентом третьей стороной, и единственным способом я могу думать о том, чтобы изменить поведение XMLHttpRequest по умолчанию и установить withCredentials к истинной. Я просто не знаю, какой метод я должен использовать.Подключаем к XMLHttpRequest метод для изменения параметров для всех запроса

Я уже пробовал конструктор и открыть методы. Общий код, который я использую, выглядит так:

var oldOpen = XMLHttpRequest.prototype.open; 
XMLHttpRequest.prototype.open = function(){ 
    this.withCredentials = true; 

    oldOpen.apply(this, arguments); 
} 

Я также попытался установить Access-Control-Allow-Credentials в заголовках ответа:

<add name="Access-Control-Allow-Credentials" value="true"/> 
+0

'У меня есть некоторые проблемы', можете ли вы описать проблемы? вы, кажется, имеете проблемы с CORS, отправляете ли вы все соответствующие заголовки CORS в своих ответах? –

+0

Да, у меня проблемы с CORS. Запросы всегда несанкционированы, поскольку у них нет cookie. Я отправляю * Access-Control-Allow-Origin * в заголовках ответов. – Akbari

ответ

0

Перезапись конструктор было то, что я необходимость. Чтобы перезаписать конструктор, вам необходимо выполнить следующие шаги:

var xp = XMLHttpRequest.prototype; 
XMLHttpRequest = function (args) { 
    var obj = new xp.constructor(args); 
    obj.withCredentials = true; 
    return obj; 
}; 
XMLHttpRequest.prototype = xp;