2015-08-19 2 views
1

Я запускаю node.js app; он прекрасно работает и во внешнем интерфейсе с angular.js
проблема заключается в том, что я получаю:nodejs Не удается загрузить URL из-за перекрестных проблем

XMLHttpRequest не может загрузить Localhost: 3000/API/data_history. Перекрестные запросы происхождения поддерживаются только для схем протокола:. HTTP, данные, хром, хром-расширения, HTTPS, хром-расширение-ресурсов (анонимные функции) @

из этого кода:

app.use(function (req, res, next) { 
    // Website you wish to allow to connect 
    res.setHeader('Access-Control-Allow-Origin', properties.clientHost); 

    // Request methods you wish to allow 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 

    // Request headers you wish to allow 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 

    // Set to true if you need the website to include cookies in the requests sent 
    // to the API (e.g. in case you use sessions) 
    res.setHeader('Access-Control-Allow-Credentials', true); 

    // Pass to next layer of middleware 
    next(); 
}); 
+0

это ожидаемый результат, если вы не установили заголовки CORS. Похоже, вы пытаетесь получить доступ к своему API с другого хоста, чем работает ваше угловое приложение. – brandonscript

+0

тот же хост другой порт я добавил код выше для моего app.js в узле все той же проблемы –

+0

вы можете показать нам свой код на стороне клиента. также, если возможно, сварить как серверный, так и клиентский код в [MCVE] (http://stackoverflow.com/help/mcve)? – lispHK01

ответ

0

Похоже, вы используете экспресс .... Вместо того, чтобы делать вручную, что об использовании этого промежуточного уровня: https://www.npmjs.com/package/cors иногда это простое решение

var sqlite3 = require('sqlite3').verbose(); 
var db   = new sqlite3.Database('data/demodb02'); 
var express = require('express'); 
var cors  = require('cors'); 
var app  = express(); 
var bodyParser = require('body-parser'); 
var fs = require('fs'); 


app.use(cors()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 


db.serialize(function() { 
    //db.run("CREATE TABLE IF NOT EXISTS counts (key TEXT, value INTEGER)"); 
    db.run("CREATE TABLE IF NOT EXISTS sensor (id INT PRIMARY KEY, sensor_type integer, data real)"); 
    db.run("CREATE TABLE IF NOT EXISTS location (longitude real NOT NULL, latitude real NOT NULL, sensor_id integer, PRIMARY KEY (longitude, latitude), CONSTRAINT id FOREIGN KEY (sensor_id) REFERENCES sensor(id))"); 
    db.run("CREATE TABLE IF NOT EXISTS data_live (sensor_id INTEGER, sensor_data REAL, time time, CONSTRAINT id FOREIGN KEY (sensor_id) references sensor(id) CONSTRAINT data FOREIGN KEY (sensor_data) references sensor(data))"); 
    db.run("CREATE TABLE IF NOT EXISTS data_history (sensor_id INTEGER, sensor_data REAL, time time, date date, CONSTRAINT id FOREIGN KEY (sensor_id) references sensor(id) CONSTRAINT id CONSTRAINT data FOREIGN KEY (sensor_data) references sensor(data))"); 
    db.run("CREATE TABLE IF NOT EXISTS client (login varchar(50), password varchar(50), user_id integer, sensor_id integer, CONSTRAINT id FOREIGN KEY (sensor_id) references sensor(id))"); 


    // test // 
    //db.run("INSERT INTO counts (key, value) VALUES (?, ?)", "counter", 0); 
    db.run("INSERT INTO sensor (id, sensor_type, data) VALUES (?, ?, ?)", 1, 4, 8); 
    db.run("INSERT INTO sensor (id, sensor_type, data) VALUES (?, ?, ?)", 2, 9, 4); 
    db.run("INSERT INTO sensor (id, sensor_type, data) VALUES (?, ?, ?)", 3, 7, 1); 
    db.run("INSERT INTO sensor (id, sensor_type, data) VALUES (?, ?, ?)", 4, 1, 15); 
    db.run("INSERT INTO location (longitude, latitude, sensor_id) VALUES (?, ?, ?)", 50, 45, 1); 
    db.run("INSERT INTO data_live (sensor_id, sensor_data, time) VALUES (?, ?, ?)", 1, 8, "08:44"); 
    db.run("INSERT INTO data_history (sensor_id, sensor_data, time, date) VALUES (?, ?, ?, ?)", 1, 8, "08:45", "12/05/2015"); 
    db.run("INSERT INTO client (login, password, user_id, sensor_id) VALUES (?, ?, ?, ?)", "user", "user", 1, 1); 

    // fin test // 
}); 


// dynamically include routes (Controller)// 
fs.readdirSync('./controllers').forEach(function (file) { 
    if(file.substr(-3) == '.js') { 
     route = require('./controllers/' + file); 
     route.controller(app, db); 
    } 
}); 
//include the rules engine files // 

/*s.readdirSync('./rules').forEach(function (file) { 
    if(file.substr(-3) == '.js') { 
     route = require('./rules/' + file); 
     //route.controller(app, db); 
    } 
});*/ 


app.listen(3000) 

console.log("Submit GET or POST to http://localhost:3000/api"); 
+0

спасибо, ребята, но я использовал курьерский на самом деле да, и я действительно установил корс в тщетной проблеме. –

+0

извините, не понял ваш комментарий ... решено или после установки модуля проблема сохраняется? – edsadr

+0

проблема сохраняется, я сказал, что уже установлен модуль cors, но ничего не изменилось. –

Смежные вопросы