![](/img/trans.png)
[英]Sending and Recieving data from web server in JQM app using Slim framework
[英]slim framework sending and recieving json
我只是在做一个简单的POST,但是由于某种原因,无论我做什么,我都无法读取JSON数据
$.ajax({
url: 'server/account/session',
type: 'POST',
data: { "username": name, "password": password} ,
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: function (data) {
sessionStorage.accessToken = data["token"];
sessionStorage.userid = data["userid"];
alert ( sessionStorage.accessToken );
},
error: function () {
}
});
data: {"username": "chips", "password": "potato"}
我的PHP:
$result = json_decode($app->request->getBody(), true);
var_dump($result);
将导致NULL。 我不明白为什么它将返回NULL,我发送了一个json,然后在php中将其解码为a。 数组,我不是在做什么?
问题二:2)一个相关的问题:
如果我要通过jquery.post发送
jQuery.post("server/account/session", { "username": name, "password": password}, function(data){
var result = JSON.parse(data);
sessionStorage.accessToken = result["token"];
sessionStorage.userid = result["userid"];
alert ( sessionStorage.accessToken );
});
并通过$userid = $app->request->params('username');
在php中接收它$userid = $app->request->params('username');
它可以完美工作,但是我的问题是,我认为当我们进行POST时,数据是通过Body而不是标头发送的。 当我执行jquery.post时,如何通过应用程序的request-> params接收它?
编辑:
好,我解决了这个问题。 即使您将内容类型指定为Json,结果也是如此。 这并不意味着它将数据转换为JSON。 我必须对数据执行JSON.stringify。
但是有人可以在第二个问题上帮助我吗?
回答问题2; 使用正确的方法时,您根本不需要JSON.stringify():
var data = {
username: user,
password: pass
};
$.ajax({
dataType: 'json',
method: 'POST',
url: 'server/account/session',
data: data,
success: function (data) {
console.log(data);
}
})
.always(function () {
$('body')
.removeClass('loading');
});
这应该会生成一个适当的JSON请求,该请求通常会被php自动解析为$ _POST,$ _ REQUEST,Slim也可以理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.