繁体   English   中英

从隐藏的表单字段发布JSON

[英]Posting JSON from hidden form field

我正在使用jQuery拦截表单发布。 使用表单字段,我正在创建一个JSON对象,该对象存储在隐藏的表单字段中。 传递给表单字段的值类似于以下内容:

{"Status" : "Closed", "Location" : "Glasgow", "Date" : "2012-02-15"}

但是,如果我从$ _POST变量中回显对象:

echo $_POST['JSON'];

输出以下内容:

{\"Status\" : \"Closed\", \"Location\" : \"Glasgow\", \"Date\" : \"2012-02-15\"}

我试图通过stripslashes()urldecode()运行它,但是我没有任何喜悦。 我知道我可以用替换功能替换反斜杠,但是那太过分了。

之前有没有人遇到过这种恶意的JSON?

注意:这是在Wordpress网站的后端。 我不确定是否会造成这种影响。

看起来您的服务器上有magic_qoutes_gpc'on'。 (http://www.php.net/manual/zh/security.magicquotes.what.php)

我曾经遇到过同样的问题,我所做的就是使用JSON.stringify()将其存储为“ String”到我的隐藏字段中,并使用jquery.parseJSON()方法读取输出。 也许这对您有帮助! 使用stringify,您还可以为JSON对象定义一个替换器。
var myJSONText = JSON.stringify(myObject, replacer);

虽然我的英语不好,但是我看到它是php中json的问题,可以用json_decode做,可以转换成数组

您拥有的另一种可能性是使用javascript将json对象中的encodeURIComponent()和php中的接收对象的urldecode()进行url编码。

请注意,js中的encodeURIComponent()与php中的urlencode()并不完全相同,同样,decodeURIComponent()与urldecode()不相同,但是在大多数情况下,在js中进行编码和在php中进行解码非常有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM