我有一个包含两个文本区域的页面,我想将其中一个文本区域的数据提交到节点(使用 ajax),节点然后进行一些处理,然后返回响应,然后将其填充到第二个文本区域中。
控制台日志显示节点代码运行良好,到达 res.end() 但 ajax 不断报告错误或超时错误,而不是调用成功回调方法。
代码的关键部分是:
前端
<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);
我已经剥离了节点的大部分功能,并试图让它返回一个 json 字符串 {a:"b"} 但这也会导致错误。我弄乱了内容类型吗?那会有多大的影响?
任何帮助,将不胜感激。