1

我刚开始摆弄 pebble.js 的原型。我必须连接到服务器并将用户数据从 pebble(登录信息)发送到服务器以进行握手并将数据从服务器发送回 pebble。我正在使用 pebble.js,因为它易于原型设计。

现在我正在使用 ajax 库(http://developer.getpebble.com/docs/pebblejs/#ajax)来设置连接。我有以下代码:

ajax(
{
  url: URL,
  method: 'post',
  type: 'json',
  data: {
    auth : 'test'
  }
},
function(data) {
  // Success!
  console.log(JSON.stringify(data));
},
function(error) {
  // Failure!
  console.log('no response');
}
);

在服务器上的 PHP 中,我通过 apache_request_headers(); 获得完整的标头信息;并使用 echo json_encode(apache_request_headers()) 将其发送到卵石;

这导致输出 console.log(JSON.stringify(data))

{"Host":"192.168.0.113","Content-Type":"application/json","Accept":"*/*","Connection":"keep-alive","Cookie":"v2ci_session=55MmpPmzb2cvBWiq3VNgneHexYzBtIFr46Ycb94s2KNKwmnz%2FStJq3euLpUSuBmbsKmKou2915ZR5Cp%2FA7xXnK7FO5EHcnem3Xi6gLpAJPXCF51sQxVQn%2BP1fAmlDqEzSnZEVkbhAO3LkZzALdnjzUc2SPyRCdVx70xAnkohQVH%2BuaU7qZtlCtYwJ7MYQqwa1%2BXuPfw9Vb7vgduYqoWMB%2FVIab5uDPe1KnIxZ08reU1PHVTWXcXXyGCEwmYfCYDkXZSIH%2FcnM%2B4oKAu3kEalGX9jxEVvC6VKz4mAdg7O5Q4Ns%2BEKyTR5VqrpisfZcY2VWOX8ipjCuYMTTosY9Lm%2F0qSpU4P%2B2ObuXCbsJIYviK2EsQqj6%2BWNo0L3DEK6L2N7","User-Agent":"PebbleApp/20141016231206 CFNetwork/711.1.12 Darwin/14.0.0","Accept-Language":"nl-nl","Accept-Encoding":"gzip, deflate","Content-Length":"6"}

如您所见,请求中没有发送任何数据。

任何人都知道为什么没有数据随请求一起发送?

解决了

我能够通过pebblejs的github解决它。对于有同样问题的人:当“类型”设置为“json”时,ajax 库不仅期望响应为 json,而且发布的数据也以 json 形式发布。如果您想在 PHP 中将这些数据收集到一个数组中,请使用以下代码:

json_decode(file_get_contents('php://input'), true); 
4

0 回答 0