用thinkphp做项目时遇到了这样的问题,自己使用的是smarty模板(要在thinkphp中使用smarty模板:在配置文件../ThinkPHP/Conf/convention.php中加上这句代码'TMPL_ENGINE_TYPE' => 'Smarty'),没有使用thinkphp内置的模板引擎。但是问题就出现在这里,代码如下:
- //验证用户登录
- $(function(){
- $('.us_Submit').click(function(){
- var username = $('#username').val();
- var password = $('#password').val();
- $.post('__APP__/User/chkuser',
- {username : username,
- password : password},
- function(data,textStatus){
- alert(data.status);
- if(data.status == 1){
- alert(data.info);
- window.location.href = '__APP__';
- }else
- alert(data.info);
- },'json'
- );
- });
- });
注意代码中红色的代码,问题的关键,,这样传值后出现了致命的错误:
解决的办法有以下几个:
一、jquery进行ajax传值时可以使用$('#form').serialize()序列方法传值来避免上述错误;
二、使用jquery中的$.ajax()方法,它是$.post()和$.get()方法原生的方法;
三、把上面红色代码的部分不用映射方式而改用字符串的方式,比如:'username='+username+'&password='+password
但是问题还是没有根本性解决,没有解决怎么使smarty模板引擎兼容上面代码的问题,希望请高人指教,小弟不胜感激!!!
今天终于知道出现问题的原因:在于
- {username : username,
- password : password}
在大括号之后没有空格,被smarty模板解析了,所以才产生错误。
转载于:https://blog.51cto.com/beyon80/935709