在 JavaScript 中将 HTTP 响应另存为字符串



如何将HTTP请求的正文保存为字符串并打印出来?我有一个 HTML 文件,我正在发送如下所示的 HTTP 请求:

function loadXMLDoc(str) {
var url = "http://192.168.178.37?" + str;
var http = new XMLHttpRequest();
http.onreadystatechange = function() {
if (http.readyState === 4) {
window.alert(http.response);
}
}
http.open('GET', url, true);
http.send();
}

另一方面,响应如下所示:

char rspText[]  = "value=sensorvalue";
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/x-www-form-urlencoded");
client.printlnf("Content-Length: %d", strlen(rspText));
client.println();
client.print(rspText);

我的问题是应该包含到正文的http.response总是空的。我知道我可能使用了错误的内容类型。我只想在响应中发送一个传感器值并将其保存为字符串以供以后使用。

你告诉浏览器需要strlen(rspText)(17( 字节的正文,但随后你错误地发送了文字字符串rspText(注意双引号(而不是你准备的实际响应。

此类问题会导致 HTTP 协议错误,发生这种情况时,浏览器可能会将.response属性留空。


同样可能存在的问题是,HTTP 被指定为 使用 CRLF 行尾,并且不清楚您的示例服务器代码是否遵循该行尾。即使浏览器足够宽松来处理 LF 行尾,中间也可能有一些挑剔的中间件是不满意的。

答案是在Safari中禁用本地文件限制...

最新更新