Nodejs Cors bağlantı hatası
Nodejs Cors bağlantı hatası
Merhaba arkadaşlar, nodejs socket.io kullanarak basit bir uygulama hazırladım.
Centos sunucuma, nodejs ve gerekli paket kurulumlarını yaptım.
Uygulamamda kullandığım paketler: socket.io, express, mysql.
pm2 paketini de global olarak kurarark sürekli aktif kalmasını sağlıyorum.
index.html dosyam içerisinde socket.io.js
var socket = io('http://sunucu-ip-adresi:app.js içerisinde belirlediğim port');
olarak çağırıyorum.
http://sunucu-ip-adresi:app.js içerisinde belirlediğim port/socket.io/socket.io.js
adresine bağlandıgımda bir sorun yok, js dosyasına ulaşabiliyorum.
Fakat bağlanmıyor. CORS hatası alıyorum chrome konsolda. Aldığım hata:
Access to XMLHttpRequest at 'http://sunucu-ip-adresi:8080/socket.io/?EIO=4&transport=polling&t=NNEDibs' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
app.js içerisinde aşağıdaki kodu deneyerek izin vermeye çalıştım. Ayrıyetten cors paketi ile denedim. Fakat sonuç değişmedi.
Bir türlü socket sunucum ile iletişime geçemiyorum. Umarım yardımcı olabilirsiniz.
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
cors paketini projenize ekleyin.
npm i cors
yada yarn add cors
ve daha sonra middleware olarak kullanin.
const cors = require('cors')
app.use(cors())
/*
* isterseniz cors a istediginiz domainleri vererek onlar harici istek atilmasini istemeyebilirsiniz
* mesela sadece buralardan izin ver gibi
*/
app.use(cors(
origin: ['localhost:3000', 'sitem1.com', 'sitem2.com']
))