服务工作者返回的javascript响应对象中的json内容

服务工作者返回的javascript响应对象中的json内容,javascript,json,ecmascript-6,fetch,service-worker,Javascript,Json,Ecmascript 6,Fetch,Service Worker,对不起,如果是琐碎的,或者已经问过了,我找不到任何关于这个的问题。我不知道我是否也做对了 我刚开始学习服务人员: 我想从服务工作者处为特定请求返回一些json对象。注意:代码只是测试/学习代码: 服务工作者获取事件: self.addEventListener('fetch', function(event) { if(event.request.url.indexOf("not_existing.json") > -1){ var obj = { "Prop" : "Some v

对不起,如果是琐碎的,或者已经问过了,我找不到任何关于这个的问题。我不知道我是否也做对了

我刚开始学习服务人员:

我想从服务工作者处为特定请求返回一些json对象。注意:代码只是测试/学习代码: 服务工作者获取事件:

self.addEventListener('fetch', function(event) {
if(event.request.url.indexOf("not_existing.json") > -1){
    var obj = { "Prop" : "Some value" };
    event.respondWith(
        new Response(obj, {
            ok: true,
            status: 222,
            url: '/'
        })
    );    
}});
提取调用:

fetch('not_existing.json')
.then(function(responseObj) {
    console.log('status: ', responseObj.status);
    return responseObj.json();
})
.then(function (data){
    console.log(data); 
});
我知道服务工作者捕捉到了请求,因为在“console.log('status:',responseObj.status);”上我得到了“222”,但在“return responseObj.json();”上脚本中断,错误为“Uncaught(in promise)SyntaxError:json中位置1处的意外标记o”

如果我从服务人员那里返回“纯文本”,并用“responseObj.text()”阅读它,那么一切都很好

在这个链接“”上,我似乎只需在响应构造函数
var myResponse=newresponse(body,init)上编写body


怎么了?如何指定json响应对象?

您实际上并没有使用json创建响应。
Response
的第一个参数是字符串或其他一些参数,但不是随机对象。如果您想要JSON,您需要实际传递JSON,例如

var obj = JSON.stringify({ "Prop" : "Some value" });
您得到的错误是因为当前它被转换为字符串

"[object Object]"


抛出
意外的标记“o”

正是我想回答的,只是错过了火车不过解释得比我好。
JSON.parse("[object Object]")