我正在尝试通过 JQuery ajax GET 请求从我的服务器检索大量数据。返回的数据将被截断(见下图)。当我通过我的Web浏览器直接导航到URL发出相同的确切请求时,我得到了完整的响应,这是一个JSON对象(见下图)。我最初在ajax调用中将数据类型选项设置为“json”,但我将其切换为“文本”,因为正在触发ajax错误函数(无法解析截断的json)。现在,它调用成功函数,尽管它尚未完成接收数据。还有几点值得注意:偶尔它会工作并加载所有数据,但大多数时候仍然会失败。我正在使用节点.js/快速服务器并发送响应对象。res.json()法典:$.ajax({ dataType: "text", url: myURL, method: "GET", success: (data) => { resolve(data); }, error: (err) => { reject(err); }, timeout: 1000000})
3 回答

撒科打诨
TA贡献1934条经验 获得超2个赞
我认为这基本上是因为必须尝试的数据编码不足,通过这个函数,某些字符的每个实例将被替换为一个,两个,三个或四个转义序列,表示字符的UTF-8编码(将只有四个转义序列由两个“代理”字符组成的字符)。encodeURIComponent()
大多数错误(例如截断的数据)都通过这种编码来解决,因为根据文档,该函数将仅处理大约50个字符的返回字符串,而忽略其余部分。$.ajax
您甚至可以通过减少返回数据中的字符数来对此进行测试。
为了缩短它,您可以尝试
$.ajax({
dataType: "text",
url: myURL,
method: "GET",
success: (data) => { resolve(encodeURIComponent(data)); },
error: (err) => { reject(err); },
timeout: 10000
})
以下是一些资源,您可以通过这些资源来关联您的问题
添加回答
举报
0/150
提交
取消