我如何发送多个xmlhttprequest

How can I send multiple XMLHttpRequests

本文关键字:xmlhttprequest 何发送      更新时间:2023-09-26

我有一个关于node js和express框架的问题。

我想在我的服务器代码中做以下事情:

  • 使用xmlhttprequest 1调用远程服务器
  • 处理响应
  • 使用xmlhttprequest 2调用远程服务器

这是我的服务器代码的简化版本:

app.js:

var express = require('express');
var routes = require('./routes');
var about = require('./routes/about');
var user = require('./routes/user');
var contact = require('./routes/contact')
var http = require('http');
var path = require('path');
var cors = require('cors');
var app = express();
....
app.get('/', routes.index);   //<---currently this is handled in index.js, in function index.

index.js:

exports.index = function(req, res){
 //xmlhttprequest 1    // <--- send xhr 1 
 //process data
 //xmlhttprequest 2    // <--- send xhr 2
};

我得到消息Cant send headers after they are sent。我阅读了快速文档,并收集到当我们试图在请求发送后修改头时发生这种情况。我还读了一些关于中间件和路由的文章。但是我看不清楚文件。

谁能指出理想的方法是什么?我可以与有相关信息的链接工作。我是一个新的表达和节点js。

编辑:更多的细节:

  • 用户正在登录我的网站foo/.

  • 他输入了一些细节,根据这些细节我做了第一个xmlhttprequest。

  • 我处理来自API 1的数据,使用处理后的数据作为输入API 2,也是一个xmlhttprequest。

如果你想发送两个不同的XHR请求,你需要为它定义两个不同的路由:

app.get('/XHR1', routes.xhr1);
app.get('/XHR2', routes.xhr2);

您获得Can't send headers after they are sent的原因是因为您正在响应客户端(可能通过res.send(200),完整列表),然后尝试再次响应客户端。每次呼叫只能回复一次