Question

On m'a dit que $ .getJSON est la meilleure façon d'envoyer des données vers et depuis des serveurs externes. J'ai probablement perdu 7 heures de mon temps à essayer d'utiliser Ajax JQuery pour le faire juste pour savoir qu'aucun navigateurs permettent ce type de méthode. Je voudrais envoyer les données à l'aide du Jquery getJSON et je me sers CakePHP comme mon extrémité de réception (à savoir mon serveur externe) Voici ce que j'ai à ce jour.

$.getJSON("http://play.mysite.com/usersessions/store/",{ data: "Hi!"});

Je ne veux pas un rappel parce que je ne besoin. J'ai juste besoin d'envoyer des données au serveur externe. C'est le site MVC est donc usersessions mon contrôleur, magasin est mon action.

Ci-dessous mon code CakePHP. Si vous ne savez pas c'est très bien. Je viens vraiment besoin de savoir si j'envoie les données correctement 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';
        }   
   }    
}

} ?>

Merci vous!

Était-ce utile?

La solution

getJSON () est pour lire des données JSON à partir du serveur. Si vous voulez juste d'envoyer certains paramètres du navigateur au serveur, il suffit d'utiliser get () et ne pas utiliser la fonction de rappel en option.

A partir de la documentation:

Demande la page test.php et envoyer des données supplémentaires le long (tout en ignorant encore les résultats de retour).

 $.get("test.php", { name: "John", time: "2pm" } );

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

Autres conseils

JQuery fournit un moyen facile à mettre en œuvre JSONP , ce qui est une condition nécessaire "hack" pour contourner les politiques de sécurité croisée-site scripting dans les navigateurs. Spécification d'un rappel dans la chaîne de requête de la requête est requise, ainsi que un formatage spécial de la réponse par votre serveur.

Votre demande devrait mis en œuvre de manière à ceci:

$.getJSON("http://play.mysite.com/usersessions/store/?jsoncallback=?",
  { data: "Hi!"}, function(){});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top