相关疑难解决方法(0)

AngularJS为跨源资源执行OPTIONS HTTP请求

我正在尝试设置AngularJS与跨源资源进行通信,其中传递我的模板文件的资产主机位于不同的域上,因此角度执行的XHR请求必须是跨域的.我已经为我的服务器添加了适当的CORS标头,以便使其工作,但它似乎不起作用.问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(它应该是GET请求).

我不确定这是AngularJS中的错误还是我需要配置一些东西.根据我的理解,XHR包装器无法发出OPTIONS HTTP请求,因此看起来浏览器正在试图确定在执行GET请求之前是否"允许"首先下载资产.如果是这种情况,那么我是否还需要使用资产主机设置CORS标头(Access-Control-Allow-Origin:http://asset.host ..)?

cross-domain cors angularjs preflight

262
推荐指数
8
解决办法
26万
查看次数

AWS S3 - CORS选项在DELETE w/VersionId期间预检投掷400错误请求

我正在使用对象的Key和删除标记的VersionID尝试删除标记的deleteObject请求.

由于CORS,浏览器(Chrome 34.0.1847.11)向以下网址发送OPTIONS预检请求:http://bucket.s3-us-west-2.amazonaws.com/Folder/File.ext?versionId = 0123456789

Amazon S3使用以下XML主体响应400(错误请求):

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>InvalidArgument</Code>
    <Message>This operation does not accept a version-id.</Message>
    <ArgumentValue>0123456789</ArgumentValue>
    <ArgumentName>versionId</ArgumentName>
    <RequestId>12345</RequestId>
    <HostId>1122334455</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

因为XMLHttpRequest返回400(错误请求),所以DELETE请求永远不会被执行.我的印象是AWS没有正确处理选项请求.如果有解决方法,那就太棒了!

我当前的CORS策略是:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

仅供参考:我正在使用AWS SDK for JS 2.0.0-rc10

先感谢您.

编辑1:我尝试添加,<AllowedMethod>OPTIONS</AllowedMethod>但亚马逊返回Found unsupported HTTP method in CORS config. Unsupported method is OPTIONS

编辑2:

选项请求/响应标头:

Remote Address: *********:443
Request URL: https://bucket.s3-us-west-2.amazonaws.com/path/to/file_name?versionId=0123456789
Request Method: OPTIONS
Status Code: …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest amazon-s3 amazon-web-services cors

21
推荐指数
1
解决办法
1万
查看次数