API:Cross-site requests/tr

Bir kullanıcı betiğin veya küçük aracın başka bir MediaWiki sitesine karşı API çağrısı yapması gerekiyorsa (ör. Vikipedi'deki bir betiğin Commons'ta görüntü bilgilerini kontrol etmesi gerekir), JSONP veya CORS kullanılmalıdır.



JSONP kullanımı
API'nin  değeri, JSON sonucunun sarılacağı bir JavaScript işlevi olan   parametresini kabul eder. Bu, belgeye dinamik olarak etiketleri ekleyerek uzak bir sitedeki API'yi çağırmak için kullanılabilir.

Örnek


GET isteği


Yanıt


CORS kullanımı
MediaWiki API'sı,  öğesinin bir sorgu dizesi parametresi olarak sağlanmasını gerektirir; değer, isteğin kaynaklandığı sitedir ve CORS protokolünün gerektirdiği Origin üstbilgisiyle eşleşir. Bu parametrenin herhangi bir uçuş öncesi isteğine dahil edilmesi gerektiğini ve bu nedenle POST istekleri için bile istek URI'sının sorgu dizesi bölümüne dahil edilmesi gerektiğini unutmayın.

parametresi sağlandığında ve istek başarılı bir CORS yanıtı döndürmediğinde, MediaWiki≥1.30 başarısızlık için kısa bir nedenle birlikte bir $ret başlığı döndürür; $reqheaders istek başlığında eşleşmeyen kaynak veya desteklenmeyen başlıklar olması durumundadır.



Doğrulanmamış CORS İstekleri
Doğrulanmamış CORS istekleri,  istek parametresi   olarak ayarlanarak herhangi bir kaynaktan yapılabilir. Bu durumda, MediaWiki  üstbilgisini yanıta ekler ve isteği oturumu kapatmış gibi işler.

Örnek


GET isteği


Yanıt


Doğrulanmış CORS İstekleri
Doğrulanmış bir CORS isteği yapmak için, uzak vikinin  ayarının başlangıç sitesine izin verecek şekilde ayarlanması gerekir. CORS başlangıç kontrolü başarılı olursa, MediaWiki yanıtta  başlığını içerecektir, bu nedenle kimlik doğrulama çerezleri gönderilebilir.

, JavaScript'te CORS isteklerinin nasıl ele alınacağına ilişkin daha fazla talimat ve örnek içermektedir.



Ek notlar

 * JSONP ve CORS arasındaki ayrıntılı farklar CORS ve JSONP adresinde mevcuttur.

