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)}
});