Ajax call не работает в гаджете Google - PullRequest
2 голосов
/ 27 февраля 2012

У меня есть скрипт коэффициента конверсии, который, как мне известно, отлично работает вне гаджета Google, однако я не могу понять, почему он не работает внутри гаджета.

Вот мой XML:

<?xml version="1.0" encoding="UTF-8"?>
<Module>
    <ModulePrefs author="Purefx.co.uk" height="280"></ModulePrefs>
    <UserPref name="title" display_name="Widget Title" default_value="Currency Converter"/>
    <UserPref name="color" display_name="Widget color" default_value="Color" datatype="enum">
        <EnumValue value="Color"/>
        <EnumValue value="Black and White"/>
    </UserPref>
    <UserPref name="style" display_name="Widget Style" default_value="Sidebar" datatype="enum">
        <EnumValue value="Sidebar"/>
        <EnumValue value="header/footer"/>
    </UserPref>
    <UserPref name="attribution" display_name="Attribution text" default_value="Purefx" datatype="enum">
        <EnumValue value="Purefx"/>
        <EnumValue value="Foreign Exchange"/>
        <EnumValue value="Currency exchange"/>
    </UserPref> 
    <Content type="html"><![CDATA[

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

    $('#convert').click(function(){

     //Get all the values
     var amount = $('#amount').val();
     var from = $('#from').val();
     var to = $('#to').val();

     //Make data string
     var dataString = "amount=" + amount + "&from=" + from + "&to=" + to;

         $.ajax({
           type: "POST",
           url: "ajax_converter.php",
           data: dataString,
           success: function(data){
             //Show results div
             $('#results').show();

            //Put received response into result div
             $('#results').html(data);
           }
         });
    });
});
</script>
]]>
</Content>
</Module>

Я не включил html-часть содержимого или сценарий php, поскольку эта часть работает на 100% и не имеет отношения к этой проблеме.

Я думаю, что проблема, в частности, заключается в выполнении вызова Ajax, при нажатии «конвертировать» ничего не публикуется в окне консоли firebug.

Я не могу найти ничего, что могло бы указывать на то, что я что-то упускаю, поэтому любые мысли приветствуются.

Большое спасибо заранее

1 Ответ

1 голос
/ 27 февраля 2012

Вы не можете совершать прямые вызовы из гаджета, потому что гаджет находится внутри контейнера гаджетов, а все вызовы передаются через контейнер гаджета.

Вы должны использовать io.makeRequest для получения удаленных данных.

Подробнее, см. http://code.google.com/apis/gadgets/docs/remote-content.html

...