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数据的返回,我们一定要在服务器端进行正确地设置,以保证能够正常获取到数据。

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...