【问题标题】:Post method through Javascript not working but works in POSTMAN通过 Javascript 发布方法不起作用但在 POSTMAN 中有效
【发布时间】:2017-10-10 12:37:23
【问题描述】:

我正在尝试通过对 Firebase Cloud Messaging 的 POST 请求向 android 设备发送消息。但是当我从 POSTMAN 发出 Post Request 时,服务器会以成功响应 200 进行响应。

但是当我通过 AJAX 请求在 JAVASCRIPT 中做同样的事情时,我得到了错误 400。

如何解决这个问题?

这是我通过 POSTMAN 发送的数据:-

网址:-“https://fcm.googleapis.com/fcm/send

内容类型:“应用程序/json”

授权:“key=mykey”

{
    "to" : "/topics/global",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark"
    }
}

JAVASCRIPT AJAX 请求:-

如果我通过 AJAX 请求从 javascript 发送相同的数据,我会得到响应 400。

mydata = {
    "to" : "/topics/global",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark"
    }
}


headers= {
    "Content-Type": "application/json",
    "Authorization": "key=AIzaSy....KC1Q",
}


$.post({
    url: 'https://fcm.googleapis.com/fcm/send',
    data: mydata,
    success: function (e) {
        console.log(e+ "SUCESS") ;
    },
    headers: headers
});

【问题讨论】:

  • 你确定你的密钥在js中这样插入时被正确转义了吗?
  • 只是快速浏览一下,您的 ajax 请求代码看起来真的很奇怪 - 您的选项对象在括号之外,并且您有 headers = 而不是 headers:... 你确定这是正确的代码?
  • 您的 JavaScript 中有明显的语法错误。这应该会给你 JS 错误而不是 400。尝试显示一个真实的 minimal reproducible example
  • 我对语法错误感到非常抱歉,我现在已经更正了。请重新检查。我正在使用 jquery 库的 POST 方法。

标签: javascript ajax firebase post postman


【解决方案1】:

尝试将您的 ajax 方法改为:

$.ajax({
   url: "https://fcm.googleapis.com/fcm/send",
   data: mydata,
   success:function(e){console.log(e)},
   headers: {
       "Content-Type":"application/json", 
       "Authorization":"key=mykey"
   }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-04
    • 2019-07-16
    • 1970-01-01
    • 2020-04-20
    • 2020-11-29
    • 1970-01-01
    • 2013-03-23
    • 2020-03-16
    相关资源
    最近更新 更多