无法使用客户端上的XMLHttpRequest读取Node.js中在线文件的内容

时间:2018-11-21 21:03:51

标签: javascript node.js

这是我在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的解决方案感兴趣

0 个答案:

没有答案