我有这个server.js
var http = require('http');
const PORT = 8000;
http.createServer((req, res) => {
var msg = req.url.split('/')[1];
console.log('Recieved: ' + msg);
var html = '<h3>You sent: ' + msg + '</h3>';
res.writeHead(200, {"Content-Type": "text/html"});
res.write(html);
res.end();
if (msg == 'end') process.exit();
}).listen(PORT, () => {
console.log("Server listening on: %s", PORT);
});
和此client.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<textarea id="textArea" rows="4" cols="50"></textarea>
<br>
<button onclick=" document.getElementById('textArea').value = '' ">clear</button>
<button onclick="sendToServer(document.getElementById('textArea').value)">send</button>
<br>
<p id="display"></p>
<script>
function sendToServer(data) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:8000/" + data, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("display").innerHTML = xhr.responseText;
}
};
xhr.send();
}
</script>
</body>
</html>
服务器从客户端接收数据并在控制台上打印。 但是当服务器将html字符串发送到客户端时,我遇到了问题。客户端没有从服务器接收html字符串。
我该如何解决这个问题?
谢谢。
答案 0 :(得分:1)
您似乎遇到了 Access-Control-Allow-Origin
的问题这就是为什么 - 你在客户端有例外
尝试替换此(在服务器脚本上)
res.writeHead(200, {"Content-Type": "text/html"});
到这个
res.writeHead(200, {"Content-Type": "text/html", "Access-Control-Allow-Origin": "*"});