Enviando $ .getJSON de servidor externo
Pergunta
Foi-me dito que US $ .getJSON é a melhor maneira de enviar dados de e para servidores externos. Eu provavelmente desperdiçado 7 horas do meu tempo tentando usar Ajax do jQuery para fazê-lo apenas para descobrir que nenhum dos navegadores permite esse tipo de método. Gostaria de enviar os dados usando o Jquery getJSON e estou usando cakephp como o meu fim de recepção (ou seja Meu servidor externo) Aqui está o que eu tenho até agora.
$.getJSON("http://play.mysite.com/usersessions/store/",{ data: "Hi!"});
Eu não quero uma chamada de retorno porque eu não precisar dele. Eu só preciso enviar alguns dados para o servidor externo. Este é o site MVC tão usersessions é meu controlador, loja é minha ação.
Abaixo está o meu código CakePHP. Se você não sabe isso, então isso é ótimo. Eu realmente preciso saber se estou enviando os dados getJSON corretamente
<?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';
}
}
}
} ?>
Obrigado!
Solução
getJSON () é para a leitura de dados JSON a partir do servidor. Se você só quer enviar alguns parâmetros do navegador para o servidor, basta usar get () e não use o callback opcional.
De docs:
Solicitar a página test.php e enviar alguns dados adicionais ao longo (enquanto ainda ignorando os resultados de retorno).
$.get("test.php", { name: "John", time: "2pm" } );
Outras dicas
JQuery fornece uma maneira fácil de implementar JSONP , que é uma condição necessária "hack" para contornar as políticas de segurança cross-site-scripting em browsers. Especificando um callback na cadeia de consulta do pedido é necessária, juntamente com alguns formatação da resposta pelo seu servidor especial.
Seu pedido precisaria implementado de uma forma como esta:
$.getJSON("http://play.mysite.com/usersessions/store/?jsoncallback=?",
{ data: "Hi!"}, function(){});