Я пытаюсь отправить данные формы через HTTP-запрос из AngularJs в Nodejs.Я включил заголовочные файлы для разрешения запросов перекрестного происхождения в angular, но он все еще не работает.
Я получаю ошибку:
Не удалось загрузить localhost: 4000 / Register: Cross originзапросы поддерживаются только для протокольных схем: http, data, chrome, chrome-extension, https.
Код для моего http-запроса:
var request = $http({
method: "post",
url: "localhost:4000/Register",
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
},
contentType: "application/json;",
data: myJSON
});
request.success(function(data, status, headers, config) {
$scope.message = data;
console.log($scope.message);
});
request.error(function(data, status, headers, config) {
alert( "failure message: " + data);
});
Это код моего сервера наnodejs:
const db = knex ({
client: 'pg',
connection: {
host : '127.0.0.1',
user : 'postgres',
//Enter the password which you entered during postgres installation
password : '',
//Whatever the database name be, replace it with 'spdb'
database : 'spdb'
}
});
const app = express();
app.use(cors())
app.use(bodyParser.json());
app.get('/',(req,res)=>{
res.send(database.users);
})
app.post('/Register', (req,res)=>{
const {fname, lname, rollno, section, password, email, role } = req.body;
const hash = bcrypt.hashSync(password);
db.transaction(trx => {
trx.insert({
hash: hash,
email: email,
rollno: rollno
})
.into('login')
.returning('email')
.then(loginEmail => {
return trx('users')
.returning('*')
.insert({
fname: fname,
lname: lname,
rollno: rollno,
section: section,
email: loginEmail[0],
joined: new Date(),
role: role
})
.then(user => {
res.json(user[0]);
})
})
.then(trx.commit)
.then(trx.rollback)
})
.catch(err => res.status(400).json('unable to register'))
})
app.listen(4000,()=>{
console.log('app is running on port 4000');
})