这是我的应用程序的提交版本,关于浏览器javascript将数据保存到服务器并使用.post和.get jQuery ajax调用从服务器加载。
returnState
已添加到提交的代码中,以显示从服务器收到的内容(用于测试目的,告知要接收的内容)。
保存Javascript代码:
var text = [];
text = {
text: "Text to be saved.",
returnState: "success"
};
$.post("Save.php", {
datatype: "json",
text : JSON.stringify(text)
});
服务器保存PHP代码:
<?php
session_start();
$json = $_REQUEST['text'];
if(get_magic_quotes_gpc()) $json = stripslashes($json);
$new = (array)json_decode($json);
$_SESSION['savedText'] = $new['text'];
echo $new['returnState'];
?>
加载Javascript代码:
var text = [];
$.get("Load.php", {
returnState: 'success'
}).done(function (data) {
text = JSON.parse(data);
console.log(text.returnState);
console.log(text.text);
});
服务器加载PHP代码:
<?php
session_start();
$returnValues = array(
text => json_decode($_SESSION['savedText']),
returnState => $_SESSION['returnState']
);
echo json_encode($returnValues);
?>
.fail()
吗?returnState
,PHP响应可以使jQuery落入.fail()
的内容/方式如何?答案 0 :(得分:1)
P.S。不要使用$ _REQUEST。使用$ _GET和$ _POST代替。
P.P.S。不要使用“魔术引号”,它在较新的php版本中已被弃用。
答案 1 :(得分:0)
$ .post应如下
$.post("Save.php", {text : JSON.stringify(text)}, 'text');
答案 2 :(得分:0)
您发送的数据应该是第二个参数,无需序列化
$.post('Save.php', text);
如果你需要一个成功的回调函数,它必须是第三个参数
$.post('Save.php', text, function(data) {
console.log('all good!');
});
如果需要为返回数据指定数据类型,则必须是第四个参数
$.post('Save.php', text, function(data) {
console.log('all good!');
}, 'json');
如果您需要失败回调,则必须使用deferred
语法:
$.post('http://www.asd.it', text, function(data) {
console.log('all good!');
}).fail(function() {
console.log('error');
});
底线:学会使用文档