Javascript/AJAX отладка

Я пытаюсь реализовать собственное приложение Google Hangouts и пытаюсь передать идентификатор Hangouts из приложения Hangouts в мое собственное приложение. Hangouts работает на сервере Google, поэтому я считаю, что это междоменная проблема.

У меня есть этот код в теле моего пользовательского приложения Hangouts, которое загружается в iframe в общем окне Hangouts:

<body>
   <script>
   var postHangoutId = function(hangoutId) {
     console.log("in function(hangoutId)");

     $.post({
       url: "https://www.myserver.com", 
       crossDomain: true,             
       dataType: "json",                 
       data: {
         "hangouts_id" : hangoutId
       },

       success: function( response ) {
         console.log( response ); // server response
       }
     });
  }

  gapi.hangout.onApiReady.add(function() {
    console.log("gapi.hangout.onApiReady.add");
    postHangoutId(gapi.hangout.getHangoutUrl().split('/').pop());
  });


  window.onload = function() {
    console.log("hangouts load");
    console.log("onload getURL" + gapi.hangout.getHangoutUrl());
  }
</script>

Мое приложение

Основная цель - получить идентификатор Hangouts и опубликовать его на моем сервере. Кажется, ничего не происходит, поэтому я замусорил код console.log заявления. Отображается заголовок "Мое приложение", так что, по крайней мере, я знаю, что пользовательское приложение работает.

Однако когда я открываю Chrome Developer Tools в открывшемся окне Hangouts и перехожу на вкладку Console, это все, что я вижу:

Я удалил свой вызов AJAX и перезапустил приложение, чтобы убедиться, что эти ошибки все еще присутствуют, поэтому они не связаны с вызовом AJAX. Как вы видите, ни один из моих журналов не здесь. Что я делаю неправильно?

1 ответ

Решение

Вам нужно использовать JSONP как dataType в jQuery Ajax кросс-доменных запросов Javascript Security блокирует запросы в вашем коде

$.post({
       url: "https://www.myserver.com", 
       crossDomain: true,             
       dataType: "jsonp",                 
       data: {
         "hangouts_id" : hangoutId
       },

       success: function( response ) {
         console.log( response ); // server response
       },error : function(err){console.log(err)}

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