Javascript node.js服务器出现跨域错误
我是node.js的新手,我正在尝试设置我的第一次安装。我有一个server.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
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服务器访问权限,而不是相反。