Thinkphp ajax传值与显示

ajax具有异步刷新的功能,所用web页面需要ajax进行数据交互,故而先在thinkphp测试了一下ajax数据传输。


thinkphp后台:利用ajaxReturn返回数据

<?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;

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 οnclick="show()">AJAX</button>

</body>
</html>


在返回的json数据的显示上面,由于对json完全不知道,走了很多弯路,刚开始只能显示出一串unicode编码  这类\u5bf9\u4e0d

后来搜索“将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编码"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值