这是我在Node.js中的服务器
var http = require('http'),
fs = require('fs');
http.createServer(function(req, res) {
if(req.url == '/req_to_node') {
res.writeHead(200);
if(fs.existsSync(__dirname+'/file1.json')) {
fs.readFile('http://example.com/file2.json', (err, contents) => {
res.end(contents.toString());
});
}
}
fs.readFile(__dirname+'/index.html', (err, contents) => {
res.writeHead(200);
res.end(contents);
});
}).listen(80, 'localhost');
这是我的index.html
<script>
ajaxReq('req_to_node', function(result) {
if(result != '') {
console.log(result);
}
});
function ajaxReq(slug,callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost/'+slug);
xhr.send();
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
callback(this.responseText);
}
};
}
</script>
如您所见,在客户端上使用XMLHttpRequest
时,我试图检查本地file1.json
是否存在,如果存在,则尝试读取另一个在线file2.json
的内容我自己的域)。
但是在控制台中我得到了错误
获取http://localhost/req_to_node网:: ERR_CONNECTION_RESET
如果我将文件读取切换到相同的本地file1.json
而不是在线file2.json
,则可以正常工作
...
fs.readFile(__dirname+'/file1.json', (err, contents) => {
...
ps。如果可能,我对没有Express的解决方案感兴趣