概念: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> 
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐