微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

360浏览器把json结果拦截为文件

最近在使用360浏览器时,发现了一个有趣的问题——我们从服务器获取到的json结果会被自动拦截一个文件

360浏览器把json结果拦截为文件

首先,我们来看一下代码

$.ajax({
   url: "/api/user",dataType: "json",success: function(data) {
      console.log(data);
   }
});

像这样从服务器请求数据,然后控制台输出数据的代码,一般是没有问题的。然而,当我们使用360浏览器时,控制台输出的并不是我们期望的json数据,而是一个下载下来的文件,包含了我们从服务器获取的json数据。

那么,这是为什么呢?其实,这是因为360浏览器会自动将一些看起来像是json数据的文本识别为json文件,并将其下载到本地。因此,如果我们想在360浏览器上正常获取json数据,我们需要在服务器返回数据时明确地告诉浏览器这是一段json数据,而非文件

我们可以在服务器端添加如下的脚本,将返回数据的content-type设置为"application/json":

app.get('/api/user',function(req,res){
    var user = { name: 'John',age: 27 };
    res.setHeader('Content-Type','application/json');
    res.send(JSON.stringify(user));
});

这样,当我们在360浏览器请求返回的数据时,就可以正常获取到json数据了。

总之,虽然这个问题只在使用360浏览器时出现,但在我们的web开发中还是需要谨慎对待,尤其是对于json数据的返回,我们一定要在服务器端进行正确地设置,以保证能够正常获取到数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐