2013-09-25 22 views
7

Sto provando una chiamata ajax di base. Quindi sto ospitando il seguente test php su un server di prova: http://voicebunny.comeze.com/index.php?numberOfWords=10 Questa pagina Web è il mio test che è già integrato nell'API VoiceBunny http://voicebunny.com/developers.jQuery Ajax chiamata semplice

Ora ho bisogno di ottenere i dati stampati da quella pagina web in qualche altra pagina web usando jQuery. Come puoi vedere la pagina web echo è un po 'JSON. Come posso ottenere questo JSON da un'altra pagina web?

Questo è il codice che ho:

$.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)); 
     } 
    }); 

Ho provato molte altre varianti, ma ottengo sempre un errore e non il JSON. Grazie

+0

Qual è l'errore che stai ottenendo? –

+0

A meno che non ospiti la tua pagina web e jquery sullo stesso sito web, questa è una chiamata interdominio. Il tuo sito web deve consentire esplicitamente le chiamate tra domini e devi abilitarlo anche nella chiamata AJAX (aggiungi 'crossDomain:" true "'). –

+0

Ehi la variabile di errore stampa solo "errore" – Alejandro

risposta

16

Si prega di impostare dataType proprietà config nella vostra ajax chiamare un dare un altro tentativo!

un altro punto è che si sta utilizzando AJAX chiamata proprietà di configurazione di setup come stringa ed è sbagliato come 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)); 
    } 
}); 

spero essere utile!

+0

potresti spiegare a cosa servono le variabili '(richiesta, errore)'. Come mai non fai niente con 'error'? –

11

È inoltre possibile rendere la chiamata ajax più generica, riutilizzabile, quindi è possibile chiamarla da diversi task CRUD (creazione, lettura, aggiornamento, eliminazione), ad esempio, e trattare i casi di successo da quelle chiamate.

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

questo è più pulito – Umair

+2

vuoi dire più pulito – weaveoftheride

+1

Se stiamo suggerendo miglioramenti inglesi e AJAX, O.P. significava eco. Nessuna lettera mancante o proprietà coinvolte, significa nessun apostrofo. Se avessi lavorato sodo, avrei potuto riportare in vita questo tipo di pedanteria. Dubito che un amministratore lo vedrebbe in quel modo però. –

Problemi correlati