2013-09-25 21 views
7

Próbuję podstawowe wywołanie ajax. Więc hostuję następujący testowy php na serwerze testowym: http://voicebunny.comeze.com/index.php?numberOfWords=10 Ta strona jest moim własnym testem, który jest już zintegrowany z API VoiceBunny http://voicebunny.com/developers.jQuery Ajax prosty call

Teraz potrzebuję uzyskać dane wydrukowane przez tę stronę na innej stronie internetowej za pomocą jQuery. Jak widać, echo strony internetowej jest trochę JSON. Jak mogę uzyskać ten JSON z innej strony internetowej?

Jest to kod mam:

$.ajax({ 

     'url' : 'http://voicebunny.comeze.com/index.php', 
     'type' : 'GET', 
     'data' : { 
      'numberOfWords' : 10 
     }, 
     'success' : function(data) {    
      alert('Data: '+data); 
     }, 
     'error' : function(request,error) 
     { 
      alert("Request: "+JSON.stringify(request)); 
     } 
    }); 

Próbowałem wielu innych odmian, ale zawsze pojawia się błąd i nigdy JSON. Dziękuję

+0

Jaki jest błąd, który otrzymujesz? –

+0

Jeśli nie hostujesz swojej strony internetowej i jquery na tej samej stronie, jest to połączenie międzydomenowe. Twoja witryna musi jawnie zezwalać na wywołania między domenami i musisz ją włączyć także w wywołaniu AJAX (dodaj "crossDomain:" true "'). –

+0

Hej, zmienna błędu drukuje tylko "błąd" – Alejandro

Odpowiedz

16

ustaw dataType własność config w swoim ajax nazywają to spróbować!

inny punkt używasz AJAX właściwości konfiguracyjnych setup jako ciąg i to jest źle, jak reference site

$.ajax({ 

    url : 'http://voicebunny.comeze.com/index.php', 
    type : 'GET', 
    data : { 
     'numberOfWords' : 10 
    }, 
    dataType:'json', 
    success : function(data) {    
     alert('Data: '+data); 
    }, 
    error : function(request,error) 
    { 
     alert("Request: "+JSON.stringify(request)); 
    } 
}); 

mam nadzieję być pomocne!

+0

Czy mógłbyś wyjaśnić, za czym kryją się zmienne '(request, error)'. Dlaczego nic nie robisz z 'error'? –

11

Można również wywołać bardziej popularne wywołanie ajax, aby można było wywoływać je z różnych zadań CRUD (tworzyć, czytać, aktualizować, usuwać) i traktować przypadki sukcesu z tych wywołań.

makePostCall = function (url, data) { // here the data and url are not hardcoded anymore 
    var json_data = JSON.stringify(data); 

    return $.ajax({ 
     type: "POST", 
     url: url, 
     data: json_data, 
     dataType: "json", 
     contentType: "application/json;charset=utf-8" 
    }); 
} 

// and here a call example 
makePostCall("index.php?action=READUSERS", {'city' : 'Tokio'}) 
    .success(function(data){ 
       // treat the READUSERS data returned 
    }) 
    .fail(function(sender, message, details){ 
      alert("Sorry, something went wrong!"); 
    }); 
+0

to jest bardziej czyściej – Umair

+2

masz na myśli czystsze – weaveoftheride

+1

Jeśli sugerujemy angielskie ulepszenia, a także AJAX, O.P. oznaczało echa. Brak brakujących liter lub własności, oznacza brak apostrofu. Gdybym ciężko pracował, mógłbym wnieść taki temat na nowo. Wątpię jednak, aby administrator to zauważył. –