Thinkphp ajax传值与显示
ajax具有异步刷新的功能,所用web页面需要ajax进行数据交互,故而先在thinkphp测试了一下ajax数据传输。
thinkphp后台:利用ajaxReturn返回数据
<?php namespace HomeController; use ThinkController; use ThinkModel; header("charset=utf-8"); class UserController extends Controller { public function index(){ $this->display(); } public function ajax(){ //ajax传值测试 $test="ajax传值测试"; $this->ajaxReturn($test); } ?>
前端js解析:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ajax测试</title> <script type="text/javascript" charset="UTF-8"> function show(){ var ajax=new XMLHttpRequest(); ajax.open("GET","{:U("ajax")}",true); ajax.setRequestHeader("Content-Type","text/html;charset=utf-8"); ajax.send(); ajax.onreadystatechange=function(){ if(ajax.readyState==4 &&ajax.status==200 ){ var str = eval(""" + ajax.responseText + """);//将ajax返回的json数据转换为中文显示 document.getElementById("div").innerHTML=str; } } } </script> </head> <body> <div id="div"></div> <button onclick="show()">AJAX</button> </body> </html>
在返回的json数据的显示上面,由于对json完全不知道,走了很多弯路,刚开始只能显示出一串unicode编码 这类u5bf9u4e0d
后来搜索“将json格式数据显示为中文”找到了方法:
例如有这样的数据:
var str = "\u6211\u662Funicode\u7F16\u7801";
1. eval解析或new Function(""+ str +"")()
str = eval(""" + str + """); // "我是unicode编码"
2. unescape 解析
str = unescape(str.replace(/u/g, "%u")); // "我是unicode编码"
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。