2014-04-20 3 views
0
<html> 
<head> 
<meta charset="utf-8"/> 
<script src="../JQUERY/jquery-1.11.0.js"></script> 
<script> 
function getOptions() 
{ 
    var html=new String(); 

    $.ajax(
    { 
     //url: 'http://server.com/?method=get&search=menu_group_options_with_items&type=group&group_id=6&format=json', 
     url: 'http://server.com', 
     data: 
     { 
      'method': 'get', 
      'search': 'menu_group_options_with_items', 
      'type': 'group', 
      'place_id': '6', 
      'format': 'json' 
     }, 
     dataType: 'jsonp', 
     async: false, 
     success: function (data) 
     { 
      alert("function"); 
      //var data = JSON.parse(data); 
      var h=new String(); 
      for(var i=0;i<data.length;i++) 
      { 
       h+='<div class="data">'; 

       h+=data[i]['group_option'].OptionsID+'<br>'; 
       h+=data[i]['group_option'].MenuGroupID+'<br>'; 
       h+=data[i]['group_option'].group_options_name+'<br>'; 
       h+=data[i]['group_option'].menu_group_option_information+'<br>'; 
       h+=data[i]['group_option'].menu_group_option_min_selected+'<br>'; 
       h+=data[i]['group_option'].menu_group_option_max_selected+'<br>'; 
       h+=data[i]['group_option'].fDateAdded+'<br><br><br>'; 

       for(var iter = 0; iter < data[i]['group_option']['group_option_items'].length; iter++) 
       { 

        h+=data[i]['group_option']['group_option_items'][iter]['item'].OptionItemID+'<br>'; 
        h+=data[i]['group_option']['group_option_items'][iter]['item'].menu_item_option_name+'<br>'; 
        h+=data[i]['group_option']['group_option_items'][iter]['item'].menu_item_option_additional_cost+'<br>'; 
        h+='<br><br><br>'; 
       } 
       h += '</div>'; 
      } 
      alert("h"); 
      alert(h); 
      alert("html equals "); 
      html=h; 
      alert(html); 

     } 

    }); 
    alert("returning html"); 
    alert(html); 
    return html; 
} 
</script> 
<script> 
$(document).ready(function() 
{ 
    var str=""; 
    str=getOptions(); 
    $('#content').append(str); 
}); 
</script> 
</head> 
<body> 
<div id="content"></div> 
</body> 
</html> 

Lorsque je l'exécuterais en utilisant l'URL complète rien ne se passerait. Je ne recevrais aucune information. Maintenant que je l'ai changé mon URL juste pour http://server.com et définir les data:{} aux exigences de l'URL, je reçois toujours rien. À ce stade, je suis coincé et je ne sais pas où aller d'autre.Ajax erreur d'URL inconnue

Mes questions:

  1. Quelle serait une raison mon code ne fonctionne pas?

  2. Que dois-je faire pour récupérer des données du site?

+2

Bienvenue dans le monde merveilleux de ** ** async! Tu ne peux pas faire ça. – SLaks

+0

selon jQuery, la publication interdomaines et jsonp ne prennent pas en charge l'opération synchrone. ref - https://api.jquery.com/jQuery.ajax/. avez-vous vérifié cette opération avec fiddler? – attila

+0

que jsonp était une erreur que vous avez attrapé par accident! il n'est pas dans le nouveau code mis à jour qui ne fonctionne toujours pas – Jonathan

Répondre

0

async:false est dépréciée après jQuery 1.8. Utilisez l'ancienne version de jQuery pour modifier votre code.

Pour changer votre code, déplacez cette partie dans la fonction de succès:

$('#content').append(str); 

J'espère que cela aide.

Merci

function getOptions() 
{ 

$.ajax(
{ 
    url: 'http://server.com/', 
    data: 
    { 
     'method': 'get', 
     'search': 'menu_group_options_with_items', 
     'type': 'group', 
     'place_id': '6', 
     'format': 'json' 
    }, 
    dataType: 'jsonp', 
    success: function (data) 
    { 
     alert("function"); 
     //var data = JSON.parse(data); 
     var h=new String(); 
     for(var i=0;i<data.length;i++) 
     { 
      h+='<div class="data">'; 

      h+=data[i]['group_option'].OptionsID+'<br>'; 
      h+=data[i]['group_option'].MenuGroupID+'<br>'; 
      h+=data[i]['group_option'].group_options_name+'<br>'; 
      h+=data[i]['group_option'].menu_group_option_information+'<br>'; 
      h+=data[i]['group_option'].menu_group_option_min_selected+'<br>'; 
      h+=data[i]['group_option'].menu_group_option_max_selected+'<br>'; 
      h+=data[i]['group_option'].fDateAdded+'<br><br><br>'; 

      for(var iter = 0; iter < data[i]['group_option']['group_option_items'].length; iter++) 
      { 

       h+=data[i]['group_option']['group_option_items'][iter]['item'].OptionItemID+'<br>'; 
       h+=data[i]['group_option']['group_option_items'][iter]['item'].menu_item_option_name+'<br>'; 
       h+=data[i]['group_option']['group_option_items'][iter]['item'].menu_item_option_additional_cost+'<br>'; 
       h+='<br><br><br>'; 
      } 
      h += '</div>'; 
     } 
     alert("h"); 
     alert(h); 
     alert("html equals "); 
     html=h; 
     alert(html); 

     $('#content').append(html); 
    } 

}); 
alert("returning html"); 
alert(html);} 
+0

ce n'est pas que son réglage de l'information au contenu div. Il vient d'arriver d'obtenir passé l'url dans mon appel ajax – Jonathan

+0

tu fais domaine croix appel ajax? – MCoder

+0

ouais que ce que je fais ou au moins en essayant de faire – Jonathan