2 つのテキスト領域を持つページがあり、そのうちの 1 つからノードに (ajax を使用して) データを送信したい場合、ノードは何らかの処理を行い、応答を返し、それが 2 番目のテキスト領域に取り込まれます。
コンソール ログは、ノード コードが res.end() に到達しても正常に動作していることを示していますが、ajax は、成功のコールバック メソッドを呼び出す代わりに、Error または TimeoutError を報告し続けます。
コードの主要部分は次のとおりです。
フロントエンド
<script>
function processClick() {
var data = {};
data.topic = document.getElementById("topic").value;
data.message = document.getElementById("request_area").value;
$.ajax({
url: 'http://localhost:8888/',
dataType:'json',
type: 'POST',
data: JSON.stringify(data),
timeout: 2000,
success: function(data) {
$("#response_area").append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
$("#response_area").append('[Error[textstatus=' + textStatus + ',errorThrown=' + errorThrown + ']]');
}
});
}
</script>
ノード
var port = 8888;
var http = require('http');
http.createServer(function (req, res) {
response = null;
console.log('request received');
res.writeHead(200, {'Content-Type': 'application/json'});
res.end('{a:"b"}');
}).listen(port);
console.log("listening on " + port);
node が行うことのほとんどを取り除き、json 文字列 {a:"b"} を返すためだけに取得しようとしましたが、それもエラーになります。コンテンツ タイプを台無しにしていませんか? それはどのくらいの影響を与えるでしょうか?
どんな助けでも大歓迎です。