Javascript 将ArrayBuffer作为JSON发送到PHP服务器
我试图向PHP发送一个POST请求,该请求将包含一个包含ArrayBuffer元素的对象。当我对元素进行JSON解码时,两个ArrayBuffers对象都为null/空 “key”对象包含两个ArrayBuffer元素“p256dh”和“auth” 该对象由注册服务工作者时创建的pushSubscription对象生成 订阅变量:Javascript 将ArrayBuffer作为JSON发送到PHP服务器,javascript,push-notification,service-worker,Javascript,Push Notification,Service Worker,我试图向PHP发送一个POST请求,该请求将包含一个包含ArrayBuffer元素的对象。当我对元素进行JSON解码时,两个ArrayBuffers对象都为null/空 “key”对象包含两个ArrayBuffer元素“p256dh”和“auth” 该对象由注册服务工作者时创建的pushSubscription对象生成 订阅变量: {"endpoint":"https://fcm.googleapis.com/fcm/send/dgoXscLGNKM:APA91bFcHhA2pGiatLbrhF
{"endpoint":"https://fcm.googleapis.com/fcm/send/dgoXscLGNKM:APA91bFcHhA2pGiatLbrhFW08oevNS81LX7C0a0zW3RP7BaJgBhij2apFxtfo8kX_kt5QE6bu5-zoYkpw50GYqOnalpFHYfpECgmIMgpVWcKGRsvUkgzM0aK_9X9HHmPIw7nqDoGK6FQ","expirationTime":null,"keys":{"p256dh":"BDQLzb281Nlw-wQzqYELodphecu7jiZD1sRd_iOCMLvK1u20Bl2-hx5EeyzEpJ0WqYvmRXnddwQHSpfC8PjEghQ","auth":"K3DI2PLDfJSAJC2DMKSqzw"}}
代码:
好的,我找到了解决办法
在将pushSubscription对象传递给fetch之前创建它时,我需要将其转换为JSON。它创建了一个我需要传递回后端服务器的正确字符串
function sendSubscriptionToBackEnd(subscription, end_point)
{
return fetch (end_point, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(subscription)})
.then((res) => {
return res.json();
})
.then((resJSON) =>{
return resJSON;
})
.catch((err) => {
console.log('Fetch Error : ', err);
});
}