Frage

Mir wurde gesagt, dass $ .getJSON der beste Weg ist, Daten zu und von externen Servern zu senden. Ich wahrscheinlich 7 Stunden meiner Zeit verschwendet versuchen JQUERY Ajax zu verwenden, um genau das zu tun, um herauszufinden, dass kein Browser dieser Art von Verfahren ermöglichen. Ich möchte die Daten senden, die JQuery getJSON mit und ich bin mit CakePHP als meine Empfangsende (d Mein externen Server) Hier ist, was ich habe, ist so weit.

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

Ich will nicht einen Rückruf, weil ich brauche es nicht. Ich brauche nur einige Daten an den externen Server zu senden. Diese MVC-Website ist so usersessions mein Controller ist, zu speichern ist meine Aktion.

Unten ist mein CakePHP Code. Wenn Sie wissen, dass es nicht so ist das in Ordnung. Ich brauche nur wirklich zu wissen, ob ich die getJSON Daten richtig schicke

<?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';
        }   
   }    
}

} ?>

Danke euch!

War es hilfreich?

Lösung

getJSON () ist für JSON-Daten vom Server zu lesen. Wenn Sie nur wollen einige Parameter vom Browser an den Server senden, benutzen Sie einfach get () und nicht über den optionalen Rückruf verwenden.

Aus der Dokumentation:

Anfrage die test.php Seite und einige zusätzliche Daten zusammen (während immer noch die Rückkehr Ergebnisse zu ignorieren) senden.

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

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

Andere Tipps

JQuery bietet eine einfache Möglichkeit zu implementieren JSONP , die eine notwendige "hack" zu bekommen um Cross-Site-Scripting-Sicherheitsrichtlinien in Browsern. in der Abfragezeichenfolge der Anforderung einen Rückruf Angeben erforderlich ist, zusammen mit einigen speziellen Formatierung der Antwort vom Server.

Ihre Anfrage müssten in einer Weise, wie diese umgesetzt:

$.getJSON("http://play.mysite.com/usersessions/store/?jsoncallback=?",
  { data: "Hi!"}, function(){});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top