Estou usando o método acima e funciona bem com um parâmetro no URL.
por exemplo, Students/getstud/1
onde o formato do controlador / ação / parâmetro é aplicado.
Agora eu tenho uma ação no controlador de alunos que aceita dois parâmetros e retorna um objeto JSON.
Então, como faço para postar dados $.getJSON()
usando o método post?
Métodos semelhantes também são aceitáveis.
O objetivo é chamar uma ação do controlador com AJAX.
get
emgetJSON
significa usar GET para obter algum json.Respostas:
O método $ .getJSON () faz um HTTP GET e não um POST. Você precisa usar $ .post ()
Nessa chamada,
dataToBeSent
pode ser o que você quiser, embora se estiver enviando o conteúdo de um formulário html, você pode usar o método serialize para criar os dados para o POST a partir do seu formulário.fonte
Esta é a minha solução de "uma linha":
Para usar jsonp e o método POST, esta função adiciona o parâmetro GET "callback" ao URL. Esta é a maneira de usá-lo:
O servidor deve estar preparado para lidar com o parâmetro GET de retorno de chamada e retornar a string json como:
em que "jsonp000000" é o valor GET de retorno de chamada.
Em PHP, a implementação seria como:
Eu fiz alguns testes entre domínios e parece funcionar. Ainda precisa de mais testes.
fonte
?callback
? na url? Isso fez com que o callback não fosse chamado por mim. Eu também adicioneiJSON.stringify(data)
. +1, postagem útil!jQuery.getJSON = function(url, data, func) { return $.get(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
Basta adicionar essas linhas ao seu
<script>
(em algum lugar após o jQuery ser carregado, mas antes de postar qualquer coisa):Substitua (alguns / todos)
$.getJSON
por$.postJSON
e divirta-se!Você pode usar as mesmas funções de retorno de chamada Javascript que com
$.getJSON
. Nenhuma alteração do lado do servidor é necessária. (Bem, eu sempre recomendo usar$_REQUEST
em PHP. Http://php.net/manual/en/reserved.variables.request.php , Entre $ _REQUEST, $ _GET e $ _POST qual é o mais rápido? )Isso é mais simples do que a solução de @lepe.
fonte
Eu tinha um código que estava executando getJSON. Eu simplesmente substituí por postagem. Para minha surpresa, funcionou
fonte
Acabei de usar post e if:
fonte
$.getJSON()
é muito útil para enviar uma solicitação AJAX e receber dados JSON como resposta. Infelizmente, a documentação do jQuery carece de uma função irmã que deve ser nomeada$.postJSON()
. Por que não usar$.getJSON()
e acabar com isso? Bem, talvez você queira enviar uma grande quantidade de dados ou, no meu caso, o IE7 simplesmente não deseja funcionar corretamente com uma solicitação GET.É verdade, atualmente não existe nenhum
$.postJSON()
método, mas você pode realizar a mesma coisa especificando um quarto parâmetro (tipo) na$.post()
função:Meu código era parecido com este:
fonte
se você tiver apenas dois parâmetros, pode fazer isso:
fonte