我只想在服务器上的文件中保存一些
JSON(使用
Javascript生成).
但我甚至不能使用简单的字符串:
但我甚至不能使用简单的字符串:
HTML文件:
<html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> <style> #test{ padding:20px 50px; background:#ccc; color:#000; } </style> <script> $(function(){ $('#test').click(function(){ $.ajax({ url: "page.PHP",data: {"foo": "bar"},processData: false,contentType: 'application/json' }); }); }); </script> </head> <body> <div id="test"> KLICK </div> </body> </html>
<?PHP $myFile = "testFile.txt"; $fh = fopen($myFile,'w'); fwrite($fh,$_POST['data']); fwrite($fh,$_POST['foo']); fwrite($fh,$_POST["foo"]); fwrite($fh,$_POST[foo]); fclose($fh);
没有任何效果.我也试过了
$.ajax({ var datatosend="foo bar"; url: "page.PHP",data: datatosend,processData: false });
我不知道会出现什么问题.单击html文件中的div后,txt文件就在那里.但文件中没有内容.如果我只是将$_POST写入文本文件,该文件包含Text“Array”,这意味着$_POST有一些内容.
解决方法
这里几乎没有什么可能出错的.检查您尝试写入的目录的权限.还要确保您的ajax调用正在使用POST方法.
$.ajax({ url: "page.PHP",type : 'POST',... });
如jQuery documentation中所述,type参数设置请求类型POST或GET.
The type of request to make (“POST” or “GET”),default is “GET”.
另一件需要考虑的事情是你实际上并没有编写JSON数据.数据以该格式发送,但当它到达$_POST变量时,它已被转换为数组.你应该尝试做的是将PHP数组写入文件 –
$fh = fopen($myFile,'<?PHP $arr='.var_export($_POST['data'],true).' ?>'); fclose($fh);
<?PHP $arr = array( 'foo'=>'bar' ) ?>
如您所见,var_export()函数返回变量的可解析版本.
var_export — Outputs or returns a parsable string representation of a variable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。