Если вам не нужно поддерживать очень старые браузеры, вот способ сделать это, даже если ваш внешний скрипт загружен с атрибутом async :
HTMLDocument.prototype.ready = new Promise(function(resolve) {
if(document.readyState != "loading")
resolve();
else
document.addEventListener("DOMContentLoaded", function() {
resolve();
});
});
document.ready.then(function() {
console.log("document.ready");
});
В конфигурации привязки WCF используйте свойство useDefaultWebProxy, чтобы WCF использовал прокси-сервер Windows по умолчанию (который может быть установлен из сетевой конфигурации IE):
<bindings>
<basicHttpBinding>
<binding name="ESBWSSL" ...everything... useDefaultWebProxy="true">
Затем в коде, прежде чем использовать соединение, сделайте следующее:
WebProxy wproxy = new WebProxy("new proxy",true);
wproxy.Credentials = new NetworkCredential("user", "pass");
и с вашим объектом webrequest, прежде чем выполнять вызов:
WebRequest.DefaultWebProxy = wproxy;
Я не тестировал код, но считаю, что это должно работать.
Примечание заменяет предыдущий ответ на основе комментария
На самом деле был еще один ответ stackoverflow, который касался настройки учетных данных на прокси.
Можно ли указать учетные данные прокси в вашем Интернете .config?