2009-07-29 11 views

cevap

11

Onun çünkü XMLHttpRequest'leri için tarayıcıda uygulanan alanları arası istekleri kısıtlamanın. Bu formatı JSONP kullanarak biçimlendirebilirsiniz, aksi takdirde istek için sunucu tarafı proxy'ye ihtiyacınız olacaktır. http://jquery.com

Not ajax documentation den aktaran

: 'senaryo' veya 'jsonp' dataType olduğunda tüm (değil aynı etki alanında) uzak istekler GET olarak belirtilmelidir (bunun nedeni DOM betiği etiketiyle komut dosyasını yükler. Bir XMLHttpRequest nesnesi gerektiren Ajax seçenekleri bu istekler için geçerli değildir. Tam ve başarılı işlevler tamamlandığında çağrılan 'dır, ancak bir XHR nesnesi almaz; beforeSend ve dataFilter işlevleri çağrılan değil.

6

diyor ki:

Çapraz kökenli kaynak paylaşımı (CORS) bir web sayfasının başka etki alanına XMLHttpRequest'leri yapmasını sağlayan bir mekanizmadır. 1 Bu tür "alanlar arası" talepler, aynı kaynak güvenlik politikası uyarınca web tarayıcıları tarafından yasaklanmış olabilir. CORS, tarayıcının ve sunucunun çapraz kaynaklı talebe izin verilip verilmeyeceğini belirlemek için etkileşimde bulunabileceği bir yol tanımlar. Sadece aynı kökenli isteklere izin vermekten daha güçlüdür, ancak bu tür çapraz kaynaklı isteklere izin vermekten daha güvenlidir.

PHP için bu header() işlevi kullanılarak yapılır:

<?php 
header("Access-Control-Allow-Origin: http://example.com"); 
?> 

CORS JSONP desenine modern bir alternatif olarak kullanılabilir. JSONP yalnızca GET istek yöntemini desteklerken, CORS ayrıca diğer HTTP isteklerini destekler. CORS kullanımı, bir web programcısının JSONP'den daha iyi hata işlemlerini destekleyen düzenli XMLHttpRequest kullanmasını sağlar. Öte yandan JSONP, eski tarayıcılarda 'un CORS desteğini engelliyor.CORS en modern web tarayıcıları tarafından desteklenmektedir. Ayrıca, JSONP dış site tehlikeye nerede XSS sorunları neden olabilir iken, CORS web sitelerinin el ile güvenliğini sağlamak için yanıtları ayrıştırmak sağlar.

JSONP veya "JSON with padding", JavaScript'te kullanılan bir iletişim tekniğidir. Aynı başlangıç ​​politikasının olması nedeniyle, farklı etki alanındaki bir sunucudan veri istemek için bir yöntem sağlar, normal web tarayıcıları tarafından yasaklanmıştır.

İlgili konular