2013-08-16 16 views
6

Burada Noobie. Başka bir alandaki bir XML dosyasını okuması gereken bir istemci komut dosyası yazıyorum. JSONP kullanmayı denedim. 200 yanıt alıyorum ancak istemci, bir nedenle neden verilen verilere erişemiyor. İki hataları alıyorum:Alan Okuyucusu AJAX, XML Okumak İçin

Resource interpreted as Script but transferred with MIME type text/xml 

ve

Uncaught SyntaxError: Unexpected token < 

İşte kod (XML url kaldırdık o gizli olduğundan):

$(document).ready(function() { 
    $.getJSON("urlOfFilecallback=?", function(data) { 
    console.log(data) 
}) 
}); 

Ben veriyi işlemek çalıştığınızda konsolda şunu elde ederim:

ReferenceError: data is not defined 

Bunu nasıl düzeltebilirim? Bir proxy kullanmam gerekiyor mu?

cevap

1

Varsayılan olarak etki alanları arası istekler için XML'ye izin verilmiyor.

Ancak, küçük bir sunucu tarafı programlama ile bir proxy oluşturabilir ve verileri kendi etki alanınıza yükleyebilir ve XML olarak çıktı alabilirsiniz. Eğer diğer etki alanı tarafı erişiminiz varsa

fazla bilgi için bu Question

+1

(kamu YQL API Usage limits 2.000 istekleri/IP başına saattir), ben IE8 ve alt crossdomain XHR isteklerini desteklemez düşünüyorum, bu yüzden evet, bir php komut dosyası – Alex

15

kullanabilirsiniz.

burada
//sample site that returns xml 
site = 'http://goo.gl/9iQWyG'; 


var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + site + '"') + '&format=xml&callback=?'; 

// Request that YSQL string, and run a callback function. 
// Pass a defined function to prevent cache-busting. 
$.getJSON(yql, function(data){ 
    console.log(data.results[0]); 
}); 

jsfiddle onay console.log şudur: Burada isterseniz YQL nasıl kullanabileceğinizi bir örnektir.

BTW

+1

başka bir yolu yoktur yapmak yql kullanmaktan daha mı? Ip veya etki alanınızı engelleyebilecekleri bir iş için işe yaramayacağına inanıyorum - aniden aşağı inecek! Teorik olarak –

+0

kendi proxy sunucunuzu yazabilir ve aynı sonucu elde edebilirsiniz .. çok kullanmak ve uygulamak çok daha kolay .. ama onsuz, her zaman, 3. parti vekil sunucuya bağlı olmak zorunda. – Shaunak

+0

Cevabınız için teşekkürler ... kendi proxy sunucumuzu nasıl oluşturduğumuza dair herhangi bir öneriniz var mı? çok teşekkürler! –

İlgili konular