当前位置: 首页 > 知识库问答 >
问题:

Angular2 HTTP Post请求到FCM服务器不工作

安星汉
2023-03-14

使用Ionic 2和angular http我试图向https://fcm.googleapis.com/fcm/send发出http post请求,用postman测试的请求工作得非常好

这个问题是我这个问题的后续问题:

http请求的代码是

import { Http, Headers } from '@angular/http';

......

constructor(public http: Http) { }

sendPushNotification(deviceId: string) {
  let url = 'https://fcm.googleapis.com/fcm/send';
  let body = 
   {
     "notification": {
         "title": "Notification title",
         "body": "Notification body",
         "sound": "default",
         "click_action": "FCM_PLUGIN_ACTIVITY",
         "icon": "fcm_push_icon"
     },
     "data": {
         "hello": "This is a Firebase Cloud Messagin  hbhj g Device Gr new v Message!",
     },
     "to": "device token"
   };

  let headers: Headers = new Headers();
  headers.append('content-type', 'application/json');
  headers.append('Authorization', 'key='+someKey);

  this.http.post(url, body, headers).map(response => {
    return response;
  }).subscribe(data => {
     //post doesn't fire if it doesn't get subscribed to
     console.log(data);
  });
}

来自chrome控制台的标题如下:

一般标题

请求URL:https://fcm.googleapis.com/fcm/send请求方法:POST状态代码:401远程地址:[2404:6800:4009:807::200A]:443

响应标头

Access-Control-Allow-Origin:http://localhost:8100 Access-Control-Expose-Headers:Content-Encoding,Content-Length,Content-Type,Date,Server alt-svc:quic=“:443”;MA=2592000;v=“35,34”cache-control:private,max-age=0 content-encoding:gzip content-length:260 content-type:text/html;Charset=UTF-8日期:Thu,2016年12月8日12:36:14 GMT过期时间:Thu,2016年12月8日12:36:14 GMT服务器:GSE状态:401 x-内容-类型-选项:nosniff x-帧-选项:SameOrigin x-xss-保护:1;mode=块

请求标头

请求标头临时标头显示为content-type:application/json起源:http://localhost:8100引用:http://localhost:8100/user-agent:mozilla/5.0(x11;Linux x86_64)AppleWebKit/537.36(KHTML,like Gecko)chrome/54.0.2840.100 safari/537.36

请求有效负载{notification:{title:“通知标题”,正文:“通知正文”,声音:“default”,……},……}数据:{hello:“这是Firebase Cloud Messaging Device的新消息!”}通知:{title:“通知标题”,正文:“通知正文”,声音:“默认”,…}改为:“/topics/cooking”

共有1个答案

艾自强
2023-03-14

通过将头添加为requestoptions来实现这一点,

let headers: Headers = new Headers({
  'Content-Type': 'application/json',
  'Authorization': 'key='+this.someKey
});
let options = new RequestOptions({ headers: headers });
 类似资料:
  • 当按钮被按下时,我执行它

  • 我正在使用带有HTTP本机模块的Ionic 2向FCM服务器发出推送通知的发布请求。我使用的代码是: 它给我一个错误: 我用Postman尝试了发布请求,它可以完美地传递推送通知。 Postman的代码是: 问题: > 如果我试图添加一个来获取服务器的响应,它会给我一个错误https://github.com/wymsee/cordova-HTTP

  • 我正在尝试将大量文件从服务器A传输到服务器B。我已经在A上设置了FTP(使用FileZilla)。 当我尝试从PC连接到A时,它工作正常。但当我尝试从B连接到A时,它不起作用。FTP用户登录,但目录列表命令一直处于停滞状态。 防火墙端口21已打开。我尝试了多台服务器、不同的FTP客户端,但没有用。除了FileZilla,我还尝试了内置FTP服务的ISS,得到了相同的结果。 使用相同凭据从本地完美连

  • 在终端上,我得到了这个错误:$./asadmin start-domain domain1 找不到默认的域目录。此系统属性没有值:com.sun.aas.domainsroot命令启动-域失败。 在Eclipse上,我得到了这个运行时异常:在Felix平台上启动GlassFish 玻璃鱼4 拜托,你知道怎么解决这个问题吗?

  • 我正在尝试创建一个网页,允许用户从其计算机上载文件,然后将其发布到我的服务器。然而,每当我点击当前网页上的“提交”按钮时,它就会立即返回 404找不到。在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。 这是我的HTML表单 对不起,如果这是一个非常明显的错误,我是非常新的php

  • 我试图将PWA添加到项目中,但未成功。服务工作者不会缓存服务器请求。请求地址未添加到缓存存储中。因此,脱机模式不起作用。 项目配置: vue水疗中心 使用axios库向服务器发出的请求 服务器响应不包含缓存控制标头 pwa是使用标准vue插件实现的:vue/cli插件pwa vue中的PWA配置。配置。js: 还有这个:浏览器中的开发者控制台-