1

我有一个我开发的小型 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# 向它发送了 post 请求......

这里可能是什么问题?警报上的数据变量打印:{"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'];

所以当我尝试打印时deviceUUIDos或者pushToken它们是空的。在我的数据库中,它们是自动插入的,它们显示为NULL. 这意味着发布请求到达,但为空……或格式错误……

4

2 回答 2

0

在以下行中,您将 data 设置为字符串值:

var data = '{"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"}';

如果您希望这是一个 Javascript 对象 (JSON),则需要删除单引号:

var data = {"deviceUUID":"25f998", "os":"bb", "pushToken":"l1355436gdfsfaddsl"};

查看http://www.json.org/了解更多信息。这个网站有很多关于 JSON 格式的信息和工具。

于 2013-05-17T15:58:28.253 回答
0

显示控制台取决于您的浏览器。Chrome/ff : Ctrl + shift + i IE : f12 然后点击刷新

对于成功部分,他的意思是在 ajax 调用完成后使用回调。您可以使用doneorfailallways

$.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);
});

您将在控制台中看到您的调用结果。

于 2013-05-17T15:56:30.417 回答