我开发了一个小型的php服务器。服务器等待提供将发送给他的json文件。
我创建了一个html页面,我正在使用jquery尝试将json文件发送到我的服务器。
我有一个按钮,当我按下它时:
$("button").click(function(){
var data = '{"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"}';
alert("User: " + userId + "\n" + "Data: " + data);
$.ajax({
type: "POST",
url: "http://192.148.2.123/Server_CityInfo/register.php",
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json"
});
});
然而,到达服务器的json文件是空的..我知道服务器工作,因为我已经通过java,obj-c,c#...
发出请求这可能是什么问题?警报上的数据变量打印:{"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"}
,它是正确的json格式,我的服务器接受。
这是我的第二部分,PHP
// We use php://input to get the raw $_POST results.
$json = file_get_contents('php://input');
$json_post = json_decode($json, true);
//creating variables from received json
$deviceUDID = $json_post['deviceUUID'];
$os = $json_post['os'];
$pushToken = $json_post['pushToken'];
因此,当我尝试打印deviceUUID
或os
或pushToken
时,它们都是空的。在我的数据库中,它们会自动插入,显示为NULL
。这意味着帖子请求到了,但是空的......或格式错误..
答案 0 :(得分:0)
根据您的浏览器显示控制台。 Chrome / ff:Ctrl + shift + i IE:f12然后点击刷新
对于成功部分,他意味着一旦ajax调用完成就使用回调。您可以使用done
或fail
或allways
:
$.ajax({
type: "POST",
url: "http://192.148.2.123/Server_CityInfo/register.php",
data: data,
contentType : "application/json; charset=utf-8",
dataType: "json"
}).allways(function(response, status, xhr){
console.log(response);
console.log(status);
console.log(xhr);
});
您将在控制台中显示您的通话结果。
答案 1 :(得分:0)
在以下行中,您将数据设置为字符串值:
var data = '{"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"}';
如果您希望这是一个Javascript对象(JSON),则需要删除单引号:
var data = {"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"};
查看http://www.json.org/了解详情。该网站有许多关于JSON格式的信息和工具。