Saya merancang sebuah situs web (mis. Mywebsite.com) dan situs ini memuat font font-face dari situs lain (katakanlah anothersite.com). Saya mengalami masalah dengan pemuatan font font face di Firefox dan saya membaca di blog ini :
Firefox (yang mendukung @ font-face dari v3.5) tidak mengizinkan font lintas domain secara default. Ini berarti font harus disajikan dari domain yang sama (dan sub-domain) kecuali Anda dapat menambahkan header "Access-Control-Allow-Origin" ke font.
Bagaimana cara mengatur header Access-Control-Allow-Origin ke font?
Jawaban:
Jadi apa yang Anda lakukan adalah ... Di folder file font letakkan file htaccess dengan berikut di dalamnya.
juga di file CSS jarak jauh Anda, deklarasi font-face memerlukan URL absolut lengkap dari file font (tidak diperlukan dalam file CSS lokal):
misalnya
Itu akan memperbaiki masalah. Satu hal yang perlu diperhatikan adalah Anda dapat menentukan dengan tepat domain mana yang harus diizinkan untuk mengakses font Anda. Dalam htaccess di atas saya telah menetapkan bahwa setiap orang dapat mengakses font saya dengan
"*"
bagaimanapun Anda dapat membatasinya menjadi:Satu URL:
Kumpulan header Access-Control-Allow-Origin http://example.com
Atau daftar URL yang dipisahkan komaAccess-Control-Allow-Origin: http://site1.com,http://site2.com
(Beberapa nilai tidak didukung dalam implementasi saat ini)
sumber
url('/fonts/League_Gothic.woff') format('woff')
cukup dengan asumsi Anda menyimpan folder 'font' di direktori yang sama dengan file .css Anda.Menurut dokumen resmi , browser tidak suka saat Anda menggunakan
header jika Anda juga menggunakan
header. Sebaliknya, mereka ingin Anda mengizinkan asal mereka secara khusus. Jika Anda masih ingin mengizinkan semua asal, Anda dapat melakukan sihir Apache sederhana untuk membuatnya berfungsi (pastikan Anda telah
mod_headers
mengaktifkannya):Browser harus mengirimkan
Origin
header pada semua permintaan lintas domain. Dokumen secara khusus menyatakan bahwa Anda perlu meng-echo header ini kembali diAccess-Control-Allow-Origin
header jika Anda menerima / berencana untuk menerima permintaan tersebut. Itulah yang dilakukanHeader
arahan ini.sumber
?yourdomain
bekerja dalam kasus terakhir, tetapi meremehkan manfaat menggunakan CDN sedikit)SetEnvIfNoCase Origin (.+) HTTP_ORIGIN=$1
.Sayangnya, jawaban yang diterima tidak berfungsi untuk saya, karena file CSS situs saya @import file font CSS, dan ini semua disimpan di Rackspace Cloud Files CDN.
Karena header Apache tidak pernah dibuat (karena CSS saya tidak ada di Apache), saya harus melakukan beberapa hal:
Lihat apakah Anda bisa lolos hanya dengan # 1, karena yang kedua membutuhkan sedikit pekerjaan baris perintah.
Untuk menambahkan tajuk khusus di # 1:
Jika Anda perlu melanjutkan dan melakukan # 2, Anda memerlukan baris perintah dengan CURL
Dari hasil yang dikembalikan, ekstrak nilai untuk X-Auth-Token dan X-Storage-Url
Tentu saja, proses ini hanya berfungsi jika Anda menggunakan Rackspace CDN. CDN lain mungkin menawarkan fasilitas serupa untuk mengedit tajuk objek dan mengubah tipe konten, jadi mungkin Anda akan beruntung (dan memposting beberapa info tambahan di sini).
sumber
Untuk Aplikasi berbasis Java, tambahkan ini ke file web.xml Anda:
sumber
Periksa link ini .. Ini pasti akan menyelesaikan masalah Anda .. Ada banyak solusi untuk membuat panggilan lintas domain DAPATKAN Ajax TAPI PERMINTAAN POST UNTUK CROSS DOMAIN TERSELESAIKAN DI SINI . Aku butuh 3 hari untuk mengetahuinya.
http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx
sumber
Di file.php Anda dari request ajax, dapat mengatur nilai header.
sumber