Я использую вышеуказанный метод, и он хорошо работает с одним параметром в URL-адресе.
например, Students/getstud/1
где применяется формат контроллера / действия / параметра.
Теперь у меня есть действие в контроллере Student, которое принимает два параметра и возвращает объект JSON.
Итак, как мне опубликовать данные с $.getJSON()
помощью метода публикации?
Допустимы и аналогичные методы.
Дело в том, чтобы вызвать действие контроллера с помощью AJAX.
get
ingetJSON
означает использование GET, чтобы получить json.Ответы:
Метод $ .getJSON () выполняет HTTP GET, а не POST. Вам нужно использовать $ .post ()
В этом вызове
dataToBeSent
может быть что угодно, хотя, если вы отправляете содержимое html-формы, вы можете использовать метод сериализации для создания данных для POST из вашей формы.источник
Это мое «однострочное» решение:
Чтобы использовать jsonp и метод POST, эта функция добавляет к URL-адресу параметр GET «обратного вызова». Вот как это использовать:
Сервер должен быть подготовлен к обработке параметра GET обратного вызова и возврату строки json как:
в котором «jsonp000000» - это значение GET обратного вызова.
В PHP реализация будет такой:
Я провел несколько междоменных тестов, и, похоже, это сработало. Тем не менее, требуется дополнительное тестирование.
источник
?callback
? в URL? Это сделало обратный звонок не для меня. Я тоже добавилJSON.stringify(data)
. +1, полезный пост!jQuery.getJSON = function(url, data, func) { return $.get(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
Просто добавьте эти строки в свой
<script>
(где-нибудь после загрузки jQuery, но перед публикацией чего-либо):Замени (некоторые / все)
$.getJSON
на$.postJSON
и наслаждайтесь!Вы можете использовать те же функции обратного вызова Javascript, что и
$.getJSON
. Никаких изменений на стороне сервера не требуется. (Что ж, я всегда рекомендую использовать$_REQUEST
PHP. Http://php.net/manual/en/reserved.variables.request.php , Среди $ _REQUEST, $ _GET и $ _POST какой из них самый быстрый? )Это проще, чем решение @lepe.
источник
У меня был код, который делал getJSON. Я просто заменил его постом. К моему удивлению, это сработало
источник
Я просто использовал сообщение и если:
источник
$.getJSON()
очень удобен для отправки запроса AJAX и получения данных JSON в качестве ответа. Увы, в документации jQuery отсутствует родственная функция, которую следует назвать$.postJSON()
. Почему бы просто не использовать$.getJSON()
и покончить с этим? Что ж, возможно, вы хотите отправить большой объем данных или, в моем случае, IE7 просто не хочет правильно работать с запросом GET.Это правда, в настоящее время
$.postJSON()
метода нет , но вы можете сделать то же самое, указав четвертый параметр (тип) в$.post()
функции:Мой код выглядел так:
источник
если у вас всего два параметра, вы можете сделать это:
источник