5
A
回答
10
CORS適用於ajax請求或閃存通常不允許的閃存請求。例如,如果域x沒有跨域策略,並且您通過flash從其中檢索mp3文件進行播放,則flash將不會允許您讀取mp3文件的id3標籤。對於ajax,如果目標服務器沒有允許您的域發出請求的跨域策略,則無法發出請求。
跨域消息傳遞允許您與來自不同來源的文檔中的iframe進行通信。例如,如果您有YouTube視頻iframe,則可以將消息傳遞給該iframe以更改音量。通常情況下,由於iframe具有不同的來源,因此無法進行通信,因此您無法通過編程方式使用youtube iframe執行任何操作。
現在應該清楚使用這個或另一個的原因。當您想要與位於iframe中但不在同一個來源的應用進行通信時,CORS允許您從另一個來源請求數據,同時使用主窗口和iframe之間的消息傳遞。
一個實際的例子:
1.You都具有YouTube播放器的iframe。
2.您可以通過YouTube數據API(CORS,可能是JSONP,XHR或其他)來播放一些視頻。
3.You現在通過跨域消息的iframe開始播放任何你在步驟#請求視頻的2
1
首先,你應該知道,CORS由以下瀏覽器支持: Internet Explorer 8+,Firefox 3.5+,Safari 4+和Chrome。請注意,IE7和較早版本的Firefox和Safari根本不支持它。但事件IE8有一些限制 - 它不支持將證書和「預檢」請求發送到服務器。 另外,您的服務器應該準備好CORS請求,即服務器上的一些額外工作也應該執行。
使用JSONP或iFrame的跨域消息傳遞在瀏覽器支持方面更爲通用,有時甚至不需要額外的服務器端工作。
相關問題
- 1. 使用postMessage的跨域消息傳遞
- 2. Opera Mini中的跨域消息傳遞
- 3. SCTP與無序消息傳遞相比,有什麼優勢?
- 4. 在GWT中爲跨域iframe消息傳遞創建window.postMessage()
- 5. 來自Facebook和跨域消息傳遞的安全性錯誤
- 6. 移動應用中的跨域消息傳遞
- 7. 消息傳遞方案
- 8. PHP在頁面之間傳遞消息
- 9. 跨頁面傳遞信息的最佳方式
- 10. Ray在光柵化方面的優勢
- 11. RPC在消息傳遞方面有什麼缺點?
- 12. 在消息傳遞捆綁
- 13. 在python中傳遞消息
- 14. Android消息傳遞
- 15. Facebook 5消息傳遞url方案
- 16. Firebase消息傳遞錯誤:消息傳遞/權限被阻止
- 17. 消息隊列與消息傳遞
- 18. ServiceStack Redis消息傳遞 - 即時消息?
- 19. Google雲消息傳遞消息隱私
- 20. 帶消息傳遞的IPC
- 21. Cassandra的消息傳遞
- 22. 針對iOS的跨平臺設備消息傳遞?
- 23. 跨多個進程的NodeJS實時消息傳遞
- 24. 調解器模式的跨層消息傳遞
- 25. 優勢和媒體子域
- 26. 跨域身份驗證 - 傳遞用戶信息
- 27. 應用內消息傳遞與推送消息:優點和缺點
- 28. RabbitMQ同步消息傳遞的優缺點
- 29. 在Node.JS中的RabbitMQ消息傳遞?
- 30. 在nodejs中傳遞的javascript消息
對於舊版瀏覽器,您可以使用flash for CORS,例如:http://flxhr.flensed.com/。但是postMessage需要一個現代的瀏覽器。 – Esailija
我們應該認定,與其他瀏覽器相比,Exporer 8/9中的CORS支持是非標準的。具體來說,jQuery支持標準的CORS,但不支持Explorer的等價物。儘管我被告知,Explorer 10確實支持標準的CORS。 – hippietrail