Nasıl Express/Node.js içinde bir İSTASYONDAN izin vermek için?
Express.js web çerçeve kullanan node.js benim uygulamada bir İSTASYONDAN destek olmaya çalışıyorum. Bu işlemek için nasıl hakkında a Google group discussion okudum ve KÖŞELERİ nasıl çalıştığı hakkında birkaç makale okudum. Öncelikle bu yaptığım (kod CoffeeScript sözdizimi ile yazılmış):
app.options "*", (req, res) ->
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
# try: 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS'
# try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
İşe yaramıyor. Tarayıcımda (Chrome) başlangıç SEÇENEKLERİ istek gönderme gibi görünüyor. Ben sadece kaynak için blok güncelleme ne zaman çapraz kökenli bir GET isteği göndermek istiyorum:
app.get "/somethingelse", (req, res) ->
# ...
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
res.header 'Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
Çalışır (Krom). Bu da Safari'de çalışıyor.
Okudum...
Bir tarayıcı bir İSTASYONDAN uygulanmasında, her kaynak çapraz GET veya POST isteği GET veya POST TAMAM olup olmadığını kontrol eden SEÇENEKLERİ isteği ile gelmelidir.
Yani benim asıl soru, nasıl oluyor bu iş gibi görünmüyor benim durumumda nedir? Neden benim uygulama değil.blok seçenekleri denir? Neden benim ana app başlıkları ayarlamak gerekiyor.blok olsun?
CEVAP
Bir sonraki eşleşen yol denetimi geçirmeden deneyin. Eğer Express app eşleşen.güzergah önce, sonra bu yaptığın sürece seçenekler rota üzerine devam etmeyecek(sonraki not):
app.get('somethingelse', function(req, res, next) {
//..set headers etc.
next();
});
KÖŞELERİ şeyler organize açısından, benim için çalışan bir katman koydum:
//CORS middleware
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'example.com');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
//...
app.configure(function() {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: 'cool beans' }));
app.use(express.methodOverride());
app.use(allowCrossDomain);
app.use(app.router);
app.use(express.static(__dirname '/public'));
});
Nasıl sadece sayısal (0-9) HTML ınputb...
Nasıl (sorgu dizesi) Node.js üzerinde ...
Nasıl bir dizini Windows komut satırın...
<birden fazla> - nasıl sadece bi...
Nasıl indirme izin vermek için .ASP.NE...