jquery ajax 响应中缺少响应 JSON
Missing responseJSON in jquery ajax Response
我正在开发一个小型Web框架来运行HCI研究,并遇到了以下问题:
我有一个运行 Express 的节点服务器,用于从 JSON 文件提供本地主机数据。不是最好的数据库,但由于它是一个单一用户系统(任何时候只有一个参与者会使用该系统),添加任何其他技术真的没有意义。以下获取请求代码工作正常:
function getUser(id,last) {
return $.ajax({
type: "GET",
url: "/data/user/"+id,
async: false
}).responseJSON;
}
由以下节点代码处理:
app.get('/data/:asset/:id', function (req, res) {
var accJSN
res.setHeader('Content-Type', 'application/json');
if(req.params.asset === "user")
{
accJSN = JSON.parse(fs.readFileSync(path.join(__dirname,'/public/data/users.json')));
res.send(JSON.stringify(accJSN.users[req.params.id]));
}
上面的代码生成了一个我可以使用/打印的响应,并包含响应 JSON 属性。下面的代码没有,我会注意到节点代码在同一个服务器.js文件中,带有jquery/ajax调用的函数在我的客户端页面中:
客户端代码:
function getUserset(ids,last) {
userQuery = "";
for(i=0;i<ids.length;i++)
{
userQuery += ids[i] + ",";
}
userQuery = userQuery.slice(0,-1);
return $.ajax({
type: "GET",
url: "/userset?users=["+userQuery+"]",
async: false
}).responseJSON;
}
服务器代码:
app.get('/userset', function (req, res) {
var accJSN = JSON.parse(fs.readFileSync(path.join(__dirname,'/public/data/users.json')));
accJSN = accJSN.users;
var users = JSON.parse(req.query.users);
var resJSN = new Array;
for(var i=0;i<users.length;i++)
{
var temp = {};
temp["id"] = users[i];
temp["fName"] = accJSN[users[i]].fName;
temp["lName"] = accJSN[users[i]].lName;
temp["profilePic"] = accJSN[users[i]].profilePic;
resJSN.push(temp);
}
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(resJSN));
})
我需要的数据实际上在响应文本中可用,但我一生都无法弄清楚为什么第二个示例不包含 responseJSON 属性,或者,如果我完全错了,为什么第一个示例包含。任何想法或解决方案表示赞赏,谢谢!
而不是手动设置 application/json
标头并发送response
只需使用
res.json(resJSN);
而不是
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(resJSN));
相关文章:
- http请求使用html而不是json进行响应
- 在不同的javascript数组中对json响应进行排序
- Laravel数据表无效的JSON响应
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 使用来自不同异步函数的响应创建一个json对象
- 无法访问响应 JSON 对象
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 使用官方 Node.js SendGrid API 发送电子邮件时,响应 JSON 中可能出现哪些错误消息
- 无法从响应 JSON 中删除 html 标记
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调
- 拆分 AJAX 响应 (JSON)
- jquery ajax 响应中缺少响应 JSON
- AJAX返回200成功,但未能解析响应JSON
- 向声音云响应json添加一个变量
- Node.js请求-Can't获取REST响应(JSON)的属性
- 如何使用javascript在for循环中获取响应json数据
- 下拉列表中未设置 AJAX 响应 JSON 数据
- Fetch api,为什么我必须在响应json()上使用它,试图让承诺有意义
- 如何使用ajax响应JSON数据
- 响应.json() 上的“意外输出结束”错误