0

我有一个猫鼬服务器,带有可通过 AJAX 调用的命令。如果我在没有从 mongoose 发送 HTTP 标头的情况下调用它,我会收到一个 CORS 错误(但是使用浏览器访问该地址就可以了),但是当我发送标头时,可能需要一分钟才能得到响应(但它确实有效),适用于 AJAX 和浏览器。我的回复代码:

//without headers
mg_printf(conn,reply.c_str());
//with headers
mg_printf(conn,"HTTP/1.1 200 OK\r\n"
    "Content-Type: text/plain\n"
    "Cache-Control: no-cache\n"
    "Access-Control-Allow-Origin: *\n\n"
    "%s\n", reply.c_str());

我怎样才能加快速度?我是否发送错误的标题?


好的,我找到了一个解决方案,如果我首先检查请求是否是 api 调用,它就可以工作,并且只在它是时发送标头。

4

1 回答 1

1

mongoose 速度慢的原因是它会等待其余的内容,直到超时。它等待的原因是因为您没有设置 Content-Length,在这种情况下,“内容结束”标记是连接关闭时。

所以正确的解决方案是:

  • 添加Content-Length具有正确正文长度的标题,或者
  • 或者,使用mg_send_header()mg_printf_data()函数,在这种情况下,您无需费心,Content-Length因为这些函数使用分块编码。
于 2014-08-17T23:24:49.923 回答