2012-02-27 1 views
2

У меня есть сценарий конверсии, который я знаю, отлично работает вне гаджета Google, но я не могу понять, почему он не работает внутри гаджета.Ajax вызов не работает в гаджетах 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, при нажатии «convert» ничто не «отправляется» в окне консоли firebug.

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

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

ответ

1

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

Чтобы получить удаленные данные, вы должны использовать io.makeRequest.

Более подробную информацию см http://code.google.com/apis/gadgets/docs/remote-content.html

+0

Благодаря Koma, который выглядит как жизнеспособное решение. Большое спасибо. – Danny