Javascript node.js服务器出现跨域错误

Javascript node.js服务器出现跨域错误,javascript,node.js,Javascript,Node.js,我是node.js的新手,我正在尝试设置我的第一次安装。我有一个server.js,我在其中定义了一个新服务器: var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs'), mysql = require('mysql'), connectionsArray = [], connection = mysql.createC

我是node.js的新手,我正在尝试设置我的第一次安装。我有一个server.js,我在其中定义了一个新服务器:

var app = require('http').createServer(handler),
  io = require('socket.io').listen(app),
  fs = require('fs'),
  mysql = require('mysql'),
  connectionsArray = [],
  connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'flipper',
    database: 'oclock',
    //database: 'nodejs',
    port: 3306
  }),
  POLLING_INTERVAL = 3000,
  pollingTimer;

// If there is an error connecting to the database
connection.connect(function(err) {
  // connected! (unless `err` is set)
  if (err) {
    console.log(err);
  }
});

// creating the server ( localhost:8000 )
app.listen(8000);

// on server started we can load our client.html page
function handler(req, res) {
  fs.readFile(__dirname + '/client.html', function(err, data) {
    if (err) {
      console.log(err);
      res.writeHead(500);
      return res.end('Error loading client.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}
接下来,我创建一个client.html文件,该文件应连接到服务器并检索数据:

正在加载。。。
//创建新的websocket
var socket=io.connect('http://oclock.dyndns.org:8000');
//收到消息后,我们打印#container div中的所有数据
socket.on('notification',函数(数据){
var usersList=“”;
$.each(数据.用户,函数(索引,用户){
usersList+=“”+user.user\u name+“\n”+
“+user.user\u说明+”\n”+
" "
"";
});
用户列表+=“”;
$('#container').html(usersList);
$('time').html('Last Update:'+data.time);
});
当我尝试使用url使用client.html连接到服务器时,我看到跨源请求被阻止。请求url为

我错过了什么?我做错了什么?

起源基于:

  • 方案(两种情况下均为http)
  • 主机名(两种情况下都是oclock.dyndns.org)
  • 端口号(一个80,另一个8000)

所以你们有不同的起源。像往常一样

我尝试设置cors,在Apache2中为此特定服务器的虚拟主机定义中添加以下标题set Access Control Allow Origin“*”,但没有成功。我也应该在node.js上做些什么吗?是的。您正在向节点服务器发出请求。节点服务器必须授予Apache服务器访问权限,而不是相反。