Я использую нокаут, и это мой код ajax:
save: function() { $.ajax({ url:"http://localhost/loyalty/welcome/json/", type: "post", data: ko.toJSON(this), contentType: "application/json", success: function (result) { alert(result) } }); }
Используя firebug, я вижу, что сообщение json отправлено правильно, проблема в том, как получить его на PHP, каково имя того, что было отправлено?
Я использую CodeIgniter
Заранее благодарю за любую помощь.
Он будет в переменной $_POST['key']
где 'key'
– это ключевые значения в объекте JSON.
**This is what exactly the way to post as json way** //index.php $(document).ready(function(){ obj = {} obj.name = "sam" obj.value = "12345" $.ajax({ url:"json.php", type: "post", data :obj, dataType:"json", success: function (result) { alert(result.name); } }); }); //json.php ,, the posted data is received as array ,, so we need to convert it as //json_encode to make as JSON again <?php $jsonReceiveData = json_encode($_POST); echo $jsonReceiveData; ?>
save: function() { $.ajax({ url:"http://localhost/loyalty/welcome/json/", type: "post", data: $(this).serialize()/*Where this is an instance of the form change with appropriate selector such as #loginForm*/, contentType: "application/json", success: function (result) { alert(result) } }); }
Используйте $ _POST в php-файле, чтобы получить данные, которые, как я понимаю, вы используете jquery, а $ – функция jquery. Теперь эти данные доступны в post superglobal. NB: вам не нужно использовать json для отправки данных через функцию ajax. Данные передаются в формате сериализованного массива, например: field1 = value1 & field2 = value2 и т. Д. …
Если вы, однако, должны использовать json, который, откровенно говоря, не нужен, используйте данные: «json =» + ko.toJSON (form)
и на стороне сервера = json_decode ($ _ POST ['json']);
Решение состоит в том, чтобы принять
contentType: "application/json",
от вызова ajax.
знак равно