我正在将一些数据从客户端发布到服务器端的脚本,我仍然得到了这个Eroor:
OPTIONS http://localhost/site/dbs.js Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin. jquery.js:9597
XMLHttpRequest cannot load http://localhost/site/dbs.js. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
server.js 没有运行node.js(路径/wamp/www/site/server.js)
var app = require('express')();
var server = require('http').createServer(app);
var mysql = require('mysql');
var port = process.env.PORT || 8080;
server.listen(port);
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
app.get('/dbs.js', function(req, res) {
res.sendfile(__dirname + '/dbs.js');
});
使用 ajax()在 index.html 中我调用将一些数据发布到dbs.js:
$.ajax({
type: "POST",
url: " http://localhost:80/site/dbs.js",
data: "name="+username+"&pwd="password,
succes: function(ret)
{
if(ret==0)
;
}
});
dbs.js:
var name;
var pwd;
function DbConn()
{
var mydb = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'admin123',
database: 'users'
});
mydb.connect();
var query = ('select passwd from peer where username=' + username);
console.log(query);
connection.end(function(err) {
// The connection is terminated now
});
}
如果我更改URL中的somethig,我收到错误:404 - 找不到“dbs.js” 所有来源都在一个文件夹中(wamp / www / site /)。 您是否认为有必要在dbs.js中添加一些XML标头
答案 0 :(得分:2)
localhost,ajax调用(和chrome)存在一个常见问题,导致您遇到错误。请查看相关问题,尤其是以下问题:Origin http://localhost is not allowed by Access-Control-Allow-Origin
答案 1 :(得分:0)
我不得不与这个错误战斗了一段时间,但终于征服了它。我收到此错误是因为我试图在不同的域之间创建SocketIO连接。进行了一些研究,结果发现浏览器不喜欢在rending html页面中发出任何跨域请求(ajax,套接字......)。原来服务器(我们向非法请求的那个)必须允许这个功能。
在您的情况下,在所有路线之前尝试使用快速中间件:
def pack (tup) :
return 256*tup[1]+tup[0]