为啥thinkphp3.2无法获取到json提交的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥thinkphp3.2无法获取到json提交的数据?相关的知识,希望对你有一定的参考价值。
我用于提交的json代码是:
$(function()
………………略…………
$('.button').click(function(event)
event.preventDefault();
var username=$('#content .utext').val();
var password=$('#content .ptext').val();
var code=$('#content .code').val();
………………略…………
wintq('正在登录,请稍后...',4,200,0,'');
$.ajax(
url:'__SELF__',
dataType:"json",
type:'POST',
cache:false,
data:'username='+username+'&password='+password+'&code='+code,
success: function(data)
if (data.s=='ok')
wintq('登录成功',1,2000,0,'');
else
rcode($('#verify'));
wintq(data.s,3,2000,1,'');
);
);
…………略……
);
提交到php的控制器的__SELF__中对应的方法后,却无法获取当前提交状态:
function login()
show_bug(REQUEST_METHOD); //这里一直显示的是默认的GET方法,但我是用AJAX POST提交的
if(IS_POST)
show_bug("IS_POST"); //自定义用于界面显示的方法
if(IS_AJAX)
show_bug("IS_AJAX");
jq的AJAX不是这样写的吗追问
也这样写过啊,但换成这样仍然读取不到提交的方式,我在ajax中用的Post提交,但结果总是默认的get方式,根本就不响应
追答可以直接用$.post()吗?
追问找到原因了。在火狐上调式了下,发现信息往返都正确。但如果直接打印$_POST之类的,会一直显示为空,而IS_AJAX也是false。不知道咋回事,但只要跟着调试走,该跳转的时候还会跳转。。。
追答你ajax上去的是POST提交喔 是IS_POST
本回答被提问者和网友采纳thinkphp中怎么返回json数据
使用thinkphp框架开发,不知道如何返回JSON字符串,ajax无法调用 有三种方式可以返回
1、若是数据库实体,可以使用toJson()方法
$user = User::get(1); echo $user->toJson();2、若非数据库实体,可以使用json view方法,thinkphp除了实现response对象,还实现了jsonResponse若非数
$data = [ 'result'=>'success', 'msg'=>'操作成功!' ]; //class Json extends Response
return json($data);
3、若非数据库实体,可以使用json_encode()方法:
$data = [ 'result'=>'success', 'msg'=>'操作成功!' ];
return json_encode($data);
thinkphp5 ajax如何返回json
$data['content'] = 'content';
$this->ajaxReturn($data);
通过ajaxReturn来实现。
以上是关于为啥thinkphp3.2无法获取到json提交的数据?的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Tableview 单元格值添加到 JSON 参数,为啥会为零?迅速
在 userModel | 查看提交的数据json 但无法获取数据