2013-12-09 22 views
14

Access-Control-Allow-Methods başlık hakkında bilgi aldım, ör.Erişim-Denetim-İzin Verme Yöntemleri için varsayılan değer

Access-Control-Allow-Methods: OPTIONS, HEAD, GET 

ben bu başlığı (sadece Access-Control-Allow-Origin) kullanılan hiç, ama geçmişte çalışmak CORS'yi aldık.

Varsayılan, tüm yöntemlere izin veriliyor mu, yoksa tanımlanmamış davranışlarla şanslı mıyım?

+0

_browser_'ın gereksiz istekleri web sunucunuzu rahatsız etmesini engellemek için çok iyi bir şey gibi görünüyor. –

cevap

17

Netleştirmek gerekirse, Access-Control-Request-Method, tarayıcı tarafından CORS ön kontrol taleplerinde ayarlanan bir istek başlığına sahiptir ve yalnızca tek bir değere sahip olabilir. Access-Control-Allow-Methods başlığı, bir CORS yanıtı üstbilgisidir ve birden çok değere sahip olabilir. Access-Control-Allow-Methods hakkında soru soruyorsunuz, çünkü bu sunucu belirttiği değer.

Access-Control-Allow-Methods başlığı, çapraz kaynaklı istekler için belirli bir son noktaya hangi HTTP yöntemlerine izin verildiğini gösterir. Tüm HTTP yöntemlerine izin verirseniz, değeri Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD gibi bir değere ayarlamak tamam. Ancak, son noktayı yalnızca birkaç yönteme sınırlamak isterseniz, yalnızca bu yöntemleri dahil etmeniz gerekir.

Bunu daha önce hiç görmediğinize göre, bu başlık yalnızca CORS ön kontrol taleplerinde kullanılır. Uygulamanızın CORS preflight'ı kullanmadığı ve daha sonra bir ön fareyi tetiklemek için bir şey değişmiş olabilir. GET/POST veya herhangi bir özel HTTP başlığı dışında herhangi bir HTTP yöntemi kullanıyor musunuz?

Burada CORS uçuş öncesi istekleri hakkında daha fazla bilgi edinebilirsiniz: http://www.html5rocks.com/en/tutorials/cors/

+0

Düzeltme için teşekkürler. Ve açıklığa kavuşturmak için, CORS hala * çalışır *. İhtiyacım olup olmadığını merak ediyorum, bazı durumlarda test etmiyorum. –

+0

Sorumu yanıtladı: "bu başlık yalnızca CORS ön kontrol taleplerinde kullanılır". –

+0

bu başlıkların değerini görebiliriz? Benim durumumda, başlıkta bir belirteç göndermem gerekiyor ama ben sadece bir isim göremiyorum. – Taran

1

Access-Control-Allow-Methods varsayılan bile uçuş öncesi istekleri, tüm basit yöntemlerle sağlamaktır. https://www.w3.org/TR/cors/#preflight-request akış (başarılı uçuş öncesi isteği adım 7) dediği gibi:

istek yöntemi yöntemlerden herhangi yöntem için bir harf duyarlı maç değildir ve basit bir yöntem değilse, önbellek ve şebekeyi uygulamak hata adımları

Ve basit yöntemin tanımı şöyledir: GET BAŞ POST

: aşağıdaki biri için bir harf duyarlı maç ise

bir yöntem basit bir yöntem olduğu söylenir

Önceden işaretlenmiş bir POST isteğiniz varsa (özel bir HTTP üstbilgisi nedeniyle) ve bir Access-Control-Allow-Methods yanıt üstbilgisi göndermezseniz, istek yine de devam eder.

İlgili konular