Почему мой гаджет не получает данные? - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть приложение на appspot.Это для учетной записи личного домена.

Я разместил гаджет iGoogle на странице iGoogle в моей учетной записи gmail.

Я отправляю запрос ajax из своего гаджета, например:

          $(document).ready(function(){
                jQuery.ajax({
                    type: "get",
                    url: "http://searcegadget2.appspot.com/requestServlet",
                    success: function(msg){
                        alert(msg);
                        if(msg.search('tr') != -1){
                            id = msg.split('</tr>').length - 1;
                            //alert(id);
                            $('#amountTable').append(msg);
                            difference();
                        }else if(msg.search('form') != -1){
                            $('#gadget').css('display', 'none');
                            document.write(msg);
                        }else if(msg.search('http') != -1){
                            document.location = msg;
                            $('#amountTable').append(msg);
                        }

                    },error: function(XMLHttpRequest, textStatus, errorThrown){
                        alert("XMLHttpRequest: " + XMLHttpRequest.responseText);
                        alert("textStatus : " + textStatus.responseText);
                        alert("errorThrown : "+ errorThrown);
                    }
                });
            });

В предупреждениях XMLHttpRequest и errorThrown ничего не отображается.Но в textStatus отображается «ошибка»!

Теперь ссылка «http://searcegadget2.appspot.com/requestServlet" отображается красным цветом, и когда я открываю« http://searcegadget2.appspot.com/requestServlet" из Inspect Element в Mozilla, он возвращает мне необходимые данные »также !Как мне прикрепить его к своему гаджету?

Мой сервлет запроса находится в Java.Для справки: jQuery.ajax ()

Кроме того, я протестировал это веб-приложение.Это работает правильно!

1 Ответ

0 голосов
/ 23 февраля 2011

Не видя сообщения об ошибке или кода ошибки, трудно сказать, в чем заключается ваша проблема, но из вашего поста я бы подумал, что это проблема междоменных сценариев.Вы не можете сделать запрос XMLHttpRequest из другого домена.(например, gmail.com не может выполнить запрос XMLHttpRequest для searcegadget2.appspot.com без выдачи ошибки).

Попробуйте добавить заголовок Access-Control-Allow-Origin в ответ контроллеракоторая обрабатывает вашу конечную точку requestServlet.

Дополнительные сведения о заголовке Access-Control-Allow-Origin см. В этой теме:

Домены множественного происхождения Access-Control-Allow-Origin?

...