L'invio di $ GetJSON a server esterni
Domanda
Mi è stato detto che $ GetJSON è il modo migliore per inviare i dati da e verso server esterni. Probabilmente ho sprecato 7 ore del mio tempo cercando di utilizzare Ajax di jQuery a farlo solo per scoprire che nessun browser consentono quel tipo di metodo. Vorrei inviare i dati utilizzando il Jquery getJSON e sto usando cakephp come il mio lato di ricezione (vale a dire il mio server esterni) Ecco quello che ho finora.
$.getJSON("http://play.mysite.com/usersessions/store/",{ data: "Hi!"});
Non voglio una richiamata perché ho bisogno di esso. Ho solo bisogno di inviare alcuni dati al server esterno. Questo è il sito MVC così usersessions è il mio controller, negozio è la mia azione.
Di seguito è il mio codice cakephp. Se non lo sai, allora va bene. Ho davvero bisogno di sapere se io mando i dati correttamente getJSON
<?php class UsersessionsController extends AppController {
var $name = 'Usersessions';
var $helpers = array('Html', 'Form','Ajax');
var $components = array('RequestHandler');
function store()
{
Configure::write('debug', 0);
$this->autoRender = false;
if($this->RequestHandler->isAjax()) {
if ($this->params['url']['data'])
{
$this->data['Usersession']['data'] = $this->params['url']['data'];
$this->Usersession->Save($this->data);
echo 'Success';
}
}
}
} ?>
Grazie voi!
Soluzione
getJSON () è per la lettura dei dati JSON dal server. Se si desidera inviare alcuni parametri dal browser al server, basta usare get () e non utilizzare il callback facoltativa.
Dalla documentazione:
Richiesta pagina test.php e inviare alcuni dati supplementari lungo (pur ignorando i risultati di ritorno).
$.get("test.php", { name: "John", time: "2pm" } );
Altri suggerimenti
JQuery fornisce un modo semplice per implementare JSONP , che è una condizione necessaria "hack" per aggirare le policy di sicurezza di cross-site-scripting nei browser. Specifica di un callback nella stringa di query della richiesta è necessario, insieme ad alcuni particolari di formattazione della risposta dal server.
La tua richiesta avrebbe bisogno di attuare in modo simile a questo:
$.getJSON("http://play.mysite.com/usersessions/store/?jsoncallback=?",
{ data: "Hi!"}, function(){});