2013-12-12 36 views
7
firefox yılında

javascript https barındırılan bir sayfadan bir http sunucusuna bir CORS isteği yapmak çalıştığında, bu bir hata atar CORS hatası 'Engellenen yükleme etkin içerik karışık' Bu hataları yakalamak istiyorum ama nasıl olduğunu anlayamıyorum.yakalamak

try { 
    $.get("http://public.opencpu.org/ocpu/library/").fail(function(xhr, err){ 
    console.log("Server error:" + xhr.responseText); 
    }); 
} catch(e){ 
    console.log(e.message);; 
} 

Ama buth xhr.responseText ve e.message ($.ajax uyumsuz olur muhtemelen çünkü) boş dizeler şunlardır: E.g.I jQuery ile böyle bir şey denedik. Aşağıdaki hata mesajını nasıl yakalayabilirim: Bloke edilmiş yükleme etkin içerik içeriği ...

cevap

3

Bu mesajı yakalayamazsınız. Sadece konsola kaydedilecek, ancak kullanıcı için mevcut değildir.

Düz XHR kullanıldığında, .open() çağrısı, .result === 0x805e0006 olan bir özel durum oluşturur. Ayrıca, ex.toString(), nsresult: "0x805e0006 (<unknown>)" içerecektir.

jQuery, jqXHR ait .statusText içine ex.toString() koyar, böylece nedeniyle karışık içeriğe engellenmiş istekleri için aşağıdaki onay yapabilirdi: Merak edenler için

xhr.statusText.indexOf('nsresult: "0x805e0006 (<unknown>)"') > -1 

: 0x805e0006NS_ERROR_CONTENT_BLOCKED olmalıdır (C++ makro değer) .

+0

Yani söyledikleriniz, $ .ajax çağrısının engellenen bir alanla güçlendirilmesi gerektiğidir. – Rhyous

+0

jquery'de xhr.open'in çağrıldığı kod satırını buldum. Kromda bir istisna alamıyorum. Bunun yerine, istisna xhr.send() üzerine kaydedilir, ancak xhr.statusText boş kalır. – Rhyous

0

Bir protokole bağlı URL kullanarak ilk etapta hatayı önlemek mümkün olmalıdır:

$.get("//public.opencpu.org/ocpu/library/") 

Sayfanız bağlama bağlı, http veya https kullanır. public.opencpu.org her ikisini de destekliyor, bu yüzden orada sorun yok.

+0

Biliyorum, ama burada sorun değil. Kullanıcı URL'yi belirtecektir. – Jeroen

+0

@Jeroen Sorunuzda bahsetmek yararlı olurdu. Her neyse, keyfi URI'lar verildiğinde, URI a) 'nın sizi desteklediğinden ve b) sizden CORS taleplerini sizden almasını nasıl sağlayabilirsiniz? – janfoeh

+0

Yapmıyorum ama bu 'fail' işleyicisi tarafından yakalanıyor. – Jeroen

İlgili konular