【发布时间】:2011-12-01 04:39:05
【问题描述】:
我现在一直坚持这个安静的时间。 我要做的就是向 php 发送一个 json 文本,处理它并发送一个响应 bacl ..
这是我作为文本区域值发送的数据..
**asdasd #$**&**%^*( AAAA SADQWEASD /// '' \\\ '' l; "" **
下面是发送到php的json(从控制台获取):
data={"Text":"asdasd #$&%^*( AAAA SADQWEASD /// '' \\\\\\ '' l; \"\" "}
我正在使用 jquery ajax 函数如下:
function ajaxfunc(data, path){
$.ajax({
type: "POST",
url: path,
data: 'data='+data,
success: function(response){
}
});
}
在 php 中,我正在这样做。
$res = json_decode(stripslashes(escapeJsonString($_POST['feed'])), true);
function escapeJsonString($value) {
# list from www.json.org: (\b backspace, \f formfeed)
$search = array("\n", "\r", "\u", "\t", "\f", "\b", "/", '"');
$replace = array("\\n", "\\r", "\\u", "\\t", "\\f", "\\b", "\/", "\"");
$result = str_replace($search, $replace, $value);
$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
$result = str_replace($escapers, $replacements, $value);
return $result;
}
echo $res["Text"];
问题是:& .. 没有在 php 中被解析,因此响应为空。 我还想确保检测到换行符..基本上我期待“所见即所得”使用 json .. json_encode 和 json_decode
【问题讨论】:
-
也许这是一个错字或混淆失败,但
$_POST['feed']不会包含您的数据,因为您在$.ajax调用中使用密钥data发送了它。 -
@Andrew :是的,这是一个错字.. 它应该是 $_POST['data']
-
您尝试做的事情可能有更好的选择。为什么需要将json格式的数据发回服务器呢?如果您只是想以 key => value 对的形式访问服务器上的数据,那么您可以将 JS 对象传递给 $.ajax 函数,并将它们编码为查询字符串并将它们 POST 到服务器。你能澄清一下你想在这里做什么吗?
-
我正在做的是使用 serializeArray() 获取表单值并使用 JSON.Stringify 将其发送到 php .. 请建议一个替代方案..
-
如果你有一组表单输入,那么你是在 serialize() 之后,而不是 serializeArray()。 serializeArray() 对于处理 JS 中的表单输入很有用,但如果你只想将其发送到服务器,用户 serialize()。