2015-08-25 3 views
0
function callOtherDomain() { 

     var invocation = new XMLHttpRequest(); 
     var username = "usr"; 
     var password = "pass"; 
     var url = 'https://someurl'; 
     invocation.open('GET', url, true, username,password); 
     console.log(this.responseText);         
     invocation.send(); 
    } 

Я не могу получить ответ, работая на код выше«this.response» не печатает в консоли

ответ

0

Ну, прежде всего, responseText это ответ вы получите от XMLHttpRequest , поэтому он должен, естественно, быть членом invocation, а не this.

Во-вторых, поскольку это ответ на запрос, ничего не будет, прежде чем будет получен фактический ответ. Поэтому, если запрос был синхронным, вы могли бы сделать это после вызова send. К сожалению, вы делаете это как асинхронный запрос, что означает, что вам нужно создать обработчик ответа (используя свойство onreadystatechange) и распечатать ответ, когда ответ был полностью получен.

Я предлагаю вам перейти по ссылке в свойстве onreadystatechange, так как он содержит очень простой, но хороший пример того, как обрабатывать запросы async, делая именно то, что вы хотите.

+0

Должно ли это быть console.log (invocation.response)? –

+0

«Во-вторых, поскольку это ответ на запрос, ничего не будет, прежде чем запрос будет отправлен». Не знаю, что стоит за вызовом, но мы можем себе представить, чем открывать, фактически вернем обещание. Знаете ли вы, что происходит за этим? Если это тоже обещание, тогда вы должны сделать что-то вроде invocation.open(). Then (function() {console.log ([this, invocation] .response);}) В зависимости от вашей реализации можно вызвать обратный вызов с определенным этим (сквозной вызов или применить), и это будет относиться к самому объекту-вызову. – Nico

+0

@xyzsfdc Для начала, да. Но так как запрос * асинхронный *, на самом деле ничего не будет печатать до тех пор, пока запрос не будет выполнен. Если вы измените его, чтобы сделать его синхронным, вы можете распечатать его после вызова 'send', иначе вы должны сделать это в функции обработчика. –

Смежные вопросы