请求正文中使用离子推送的json无效

时间:2016-05-15 04:44:36

标签: javascript ionic-framework

无法找到我的req对象有什么问题。尝试在回调中发送推送通知时出现此错误。试图使用jslint.com链接我的请求数据,没有任何问题。为此已经抓了好几个小时!

  

{" link":null," message":"请求正文中的JSON无效。为空   JSON,传递' {}'。","输入":" UnprocessableEntity"}

我的代码如下:

var title = req.body.title,
  message = req.body.message;

// Define relevant info
var ionic_api_token = 'eyJ0eXAiOTdGb-xQVQaD2sV7qTh7XNKCnwiJKV1QiLJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2MjiNC03YjE5LTQ3MzMtYjJhMy0zM2Y3MjBkYzU4MjcifQ.s3e6pCwlVUBAs8kvbO';
var device_tokens = ['d44pDarVamnNJS2cNJ2modyBxjZZxcHLlnhQN4wZkJdbgkOw96rq9EEv2WCA5MKU6do0pJoO5rsmQsBAecFt4OIFB0hhD4Dp2K-uMbjum828j-8LKtpCTtGoIDBUvYI6L'];
var ionic_security_profile = 'main';

// Build the request object
var req = {
  method: 'POST',
  url: 'https://api.ionic.io/push/notifications',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + ionic_api_token
  },
  data: {
    "tokens": device_tokens,
    "profile": ionic_security_profile,
    "notification": {
      "title": title,
      "message": message,
      "android": {
        "title": title,
        "message": message
      },
      "ios": {
        "title": title,
        "message": message
      }
    }
  }
};

function callback(error, response, body) {
  console.log(body)
}

request(req, callback);

});

1 个答案:

答案 0 :(得分:0)

唯一可能导致问题的是标题&消息对象(可能是字符串)。请尝试转义它,如下所示

function escapeJson(json) {
   return JSON.parse(JSON.stringify(json));
}

title = escapeJson(title);
message = escapeJson(message);

var req = {
  method: 'POST',
  url: 'https://api.ionic.io/push/notifications',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + ionic_api_token
  },
  data: {
    "tokens": device_tokens,
    "profile": ionic_security_profile,
    "notification": {
      "title": title,
      "message": message,
      "android": {
        "title": title,
        "message": message
      },
      "ios": {
        "title": title,
        "message": message
      }
    }
  }
};