Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 44999|Yanıt: 4

[ASP.NET] asp.net MVC, tek bir denetleyici yönteminin alanlar arasında geçiş yapmasına izin verir

[Bağlantıyı kopyala]
Yayınlandı 31.07.2018 10:13:37 | | | |
Cors nedir?

CORS, "Kökenler arası kaynak paylaşımı" anlamına gelen bir W3C standartıdır.
Tarayıcının çapraz kaynak sunuculara XMLHttpRequest istekleri yapmasına olanak tanır ve böylece AJAX'ın yalnızca homojen şekilde kullanılabileceği sınırlamasını aşır.

1. Giriş

CORS hem tarayıcı hem de sunucu desteği gerektirir. Şu anda tüm tarayıcılar bu özelliği destekliyor ve IE tarayıcı IE10'dan düşük olamaz.

Tüm CORS iletişim süreci tarayıcı tarafından otomatik olarak tamamlanır ve kullanıcı katılımı gerektirmez. Geliştiriciler için CORS iletişimi, homolog AJAX iletişiminden farklı değildir ve kod tamamen aynıdır. Tarayıcı, bir AJAX isteğinin kaynağı geçtiğini fark ettiğinde, otomatik olarak bazı ek başlık bilgileri ekler ve bazen bir ek istek daha ekler, ancak kullanıcı bunu hissetmez.

Bu nedenle, CORS iletişimini sağlamanın anahtarı sunucudur. Sunucu CORS arayüzünü uyguladığı sürece, kaynaklar arasında iletişim kurabilir.

Aslında, web sunucusu programları (örneğin ASP.NET veya PHP vb.) gelen Http isteğinin çapraz alanlı bir Ajax isteği olup olmadığını ayırt edemez ve kontrol edemez.CORS bu sorunu çözmek için tasarlanmıştır ve W3C özel CORS standardı, tarayıcılara Ajax'ın çapraz alan taleplerine izin veren bir mekanizma sunar.

2: Yerel JS Ajax istek kodu

jQuery'ye referans vermek istemediğim için, js ile aşağıdaki yöntemleri kapsülledim, aşağıdaki şekilde:

Ajax arayüz testleri talep ediyor ve aşağıdaki hata bulur:




Üçüncü: Çapraz alanlara izin verecek bir kontrolcü yöntemi ayarlayın

Şöyle böyleHepsi izin verirDenetleyici veya API yöntemi, web.config dosyasında çapraz alanlıdırsystem.webServerDüğümün altına aşağıdaki yapılandırma eklenir:

Yukarıdaki sonuç istediğimiz sonuç değil! Eğer sadece bir alan adının alan adları arasında arayüzlerimizden birine erişmesini istiyorsak, şöyle görünen bir özellik tanımlamamız gerekir:

Alanlar arası erişim izinlerini ayarlamak için kod şu paragraftır: HttpContext.Response.AppendHeader("Erişim-Kontrol-İzin-Başlama Kaynağı", köken);

Kontrolör yönteminin üzerindeki özellikleri şu şekilde ayarlıyoruz:

Aşağıda gösterilen sonuçla Ajax talebini tekrar başlatıyoruz:



Diğer web sitelerimizden API arayüz kaynaklarına başarıyla erişilebilir.

(Son)





Önceki:Herkese merhaba{:1_7:}
Önümüzdeki:CSS metni bu iki yöntemin ötesinde gizlidir
 Ev sahibi| Yayınlandı 17.06.2019 14:23:05 |
HTTP isteği yöntemleri sadece GET ve POST değil, en yaygın kullanılanlardır. RFC2616 standarda göre (mevcut HTTP/1.1), genellikle 8 yöntem vardır: OPTIONS,, POST, PUT, DELETE, TRACE ve CONNECT.

OPTIONS isteği yönteminin iki ana kullanımı vardır:

1. Sunucu tarafından desteklenen HTTP isteği yöntemini alın; Ayrıca hackerlar tarafından sıkça kullanılan bir yöntemdir.

2. Sunucunun performansını kontrol etmek için kullanılır. Örneğin, AJAX çapraz alan talebi yaptığında, gerçek talebin güvenli olup olmadığını belirlemek için başka bir alan adının kaynağına HTTP OPTIONS başlığı göndermesi gerekir.
 Ev sahibi| Yayınlandı 4.11.2019 17:29:52 |
jquery.min.js:2 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://192.168.252.193:2019/home/testMIME tipi uygulama/json ile. Bkz.https://www.chromestatus.com/feature/5629709824032768Daha fazla detay için.
 Ev sahibi| Yayınlandı 19.01.2020 15:33:23 |

Yayınlandı 12.11.2021 15:59:52 |
İyi yazılmış, öğrenmiş
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com