概念:Cross-Origin Resource Sharing (CORS)是W3c工作草案,它定義了在跨域訪問資源時瀏覽器和服務器之間如何通信。CORS背後的基本思想是使用自定義的HTTP頭部允許瀏覽器和服務器相互瞭解對方,從而決定請求或響應成功與否。
對一個簡單的請求,沒有自定義頭部,要麼使用GET,要麼使用POST,它的主體是text/plain,請求用一個名叫Orgin的額外的頭部發送。Origin頭部包含請求頁面的頭部(協議,域名,端口),這樣服務器可以很容易的決定它是否應該提供響應。
問題一:oss阿里雲跨域上傳失敗?
需要注意的是:
瀏覽器發送了Request Method:OPTIONS 並且還發送了如下幾個Header,
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Host:cors-test.oss-cn-hangzhou.aliyuncs.com
Origin:http://10.101.166.53
解決方案:
根據瀏覽器中發送的Header,設置CORS
例如設置成:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://10.101.166.53</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>