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!

È stato utile?

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" } );

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

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(){});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top