2015-04-17 22 views
6

AngularJS kullanıyorum, ancak JQuery ve düz JavaScript ile de aynı sorunla karşılaştım. Erişmekte olduğum uzak sunucu Access-Control-Allow-Origin ayarlıyorsa, success veya error yöntemleri çağrılır.Erişim Denetimi-İzin-Menşe Kaynağı hatası nasıl yakalanır?

Erişim Denetimi-İzin Verme Kaynağı yoksa, bunlardan hiçbiri aranmaz ve yalnızca konsolu hatayı görebiliyorum. JavaScript kodumda No Access-Control-Allow-Origin hatayı yakalamanın bir yolu var mı?

Ve bir kullanım durumu ile ilgileniyorsanız, PyPi https://pypi.python.org/ için bir ön uç yapıyorum JSON formatında paketler hakkında bilgi alabilirsiniz. (ör. https://pypi.python.org/pypi/dspy/json). Bu istekler, Access-Control-Allow-Origin'i ayarladı, ancak sunucuda olmayan bir paket için bir istek gönderirsem (ör. https://pypi.python.org/pypi/dspyz/json), o zaman Erişim-Kontrol-İzin-Menşe Erişimi yok ve bu yüzden hiçbir şey alamıyorum. JavaScript kodumda çağrıldı. Ben error yöntem sadece dolayı kullandığım ve bu beni yanıltmak koduyla bazı konuyla ilgili bir istisna attı denilen öğrendim biraz daha deneylerden sonra

Güncelleme

. Güvenlik nedenlerinden dolayı bu mümkün değildir.

+1

Elbette, 'error' denir. – zeroflagL

cevap

3

Güvenlik nedeniyle bu mümkün değildir. Kullanıcıların yerel ağını koklamak mümkün olabilirdi.

Daha fazla bilgi here.

Yorum için eithedog'a bağlantı kredisi.

+0

Bu, JavaScript kodunun reddedilme isteğini bilmediği anlamına mı geliyor? Zaman aşımına uğramış gibi sessizce cevaplanmadı mı? – szabgab

+1

Evet, tekrar denedim. "Xhr.onerror" ifadesini dinlediğinizde, "timeout" veya "Access-Control-Allow-Origin Yok" gibi bir hata nesnesi alırsınız. Bu hataları güvenli olmayan bir şekilde ayırt etmenin tek yolu, isteği başlattığınızdan beri geçen süreyi izlemektir. –

İlgili konular