v2.5.2
Giriş yap

Nodejs Cors bağlantı hatası

dean
1,087 defa görüntülendi

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();

});

Cevap yaz
Cevaplar (1)
bomi
1248 gün önce

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']
))