You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用EventSource请求JSON文件时出现NetworkError:406 Not Acceptable问题求助

解决EventSource请求JSON时的406 Not Acceptable错误

这个406错误的核心原因是EventSource的默认请求头和服务器返回的JSON响应类型不兼容,我来给你拆解问题并提供几个可行的解决方案:

为什么会出现这个错误?

当你用new EventSource()发起请求时,浏览器会自动给请求加上Accept: text/event-stream的HTTP头——这是因为EventSource是专门为**Server-Sent Events(SSE)**设计的,它期望服务器返回符合SSE规范的事件流数据,而非普通的JSON。

而你的服务器返回的.json文件,默认的Content-Type是application/json。当服务器检测到请求的Accept头(只接受text/event-stream)和自身返回的Content-Type不匹配时,就会返回406 Not Acceptable错误。

解决方案

方案1:改用普通HTTP请求(最适合静态JSON场景)

如果你只是要获取一次静态GeoJSON数据,完全没必要用EventSource——它本来是用来处理持续的实时数据流的。换成fetch或者XMLHttpRequest更简单直接,还能避免请求头不兼容的问题:

// 用fetch替代EventSource
fetch('/liveMap/pesron1.json')
  .then(response => {
    if (!response.ok) throw new Error('请求失败');
    return response.json(); // 直接解析JSON
  })
  .then(data => {
    console.log('data ', data);
    // 这里处理你的GeoJSON数据,比如渲染地图等
  })
  .catch(error => {
    console.log('error...', error);
  });

方案2:修改服务器配置,让JSON文件支持text/event-stream头

如果你坚持要用EventSource(比如之后要扩展成实时SSE流),可以修改服务器配置,让.json文件在接收到Accept: text/event-stream请求时,返回text/event-stream的Content-Type:

Nginx配置示例:

location ~* \.json$ {
    types {
        text/event-stream json;
    }
}

Apache配置示例:

AddType text/event-stream .json

方案3:将JSON包装成SSE格式

另外,EventSource只能解析符合SSE规范的数据流——每条数据必须以data:开头,结尾用两个换行符。你可以把你的JSON文件内容改成这样:

data: {"type":"FeatureCollection","features":[{"type":"Feature","id":"1850220292","geometry":{"type":"Point","coordinates":[51.4220625,35.7131196]},"properties":{"id":"1850220292","Description":"","Url":"liveMap/3131.json","Date":"1396/10/07 12:40:08","Accuracy":"19.573","Bearing":"0","Speed":"0","Direction":"0","GPSState":"0","PowerState":"0","Latitude":"35.7131196","Longitude":"51.4220625","BusinessName":"m-Ali","LocationName":""}}]}

同时配合方案2的服务器配置,EventSource就能正常解析这个数据了。

内容的提问来源于stack exchange,提问作者Mona Baharlou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:24:49