这是请求和回复
**Request URL:https://www.googleapis.com/upload/drive/v2/files/0B6B-RNrxsCu2S0xxSkZQUEQ3eDQ?uploadType=media**
Request Method:OPTIONS
Status Code:200 OK
Request Headersview source
:host:www.googleapis.com
:method:OPTIONS
:path:/upload/drive/v2/files/0B6B-RNrxsCu2S0xxSkZQUEQ3eDQ?uploadType=media
:scheme:https
:version:HTTP/1.1
accept:*/*
accept-encoding:gzip,deflate,sdch
accept-language:en-US,en;q=0.8,en-AU;q=0.6
access-control-request-headers:accept, content-type, authorization, upload-content-length, upload-content-type
access-control-request-method:PUT
origin:http://dev.example.co:8888
referer:http://dev.example.co:8888/app/drivecrud.html
user-agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36
Query String Parametersview sourceview URL encoded
uploadType:media
**Response Headersview source**
alternate-protocol:443:quic
cache-control:no-cache, no-store, max-age=0, must-revalidate
content-length:0
content-type:application/octet-stream
date:Fri, 18 Apr 2014 06:46:58 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:HTTP Upload Server Built on Apr 11 2014 13:30:54 (1397248254)
status:200 OK
version:HTTP/1.1
失败......
OPTIONS https://www.googleapis.com/upload/drive/v2/files/0B6B-RNrxsCu2S0xxSkZQUEQ3eDQ?uploadType=media
Origin http://dev.example.co:8888 is not allowed by Access-Control-Allow-Origin.
通过确认,其他一切似乎都可以......
所以感觉像是
之一Drive API记录在https://developers.google.com/drive/web/manage-uploads#simple
所以我问,我的请求是不是由API指定的,或者是指定的,API是否已损坏。
答案 0 :(得分:0)
正如人们评论的那样:看起来像是一个跨域问题。
我假设您使用javascript来发出此请求;
基本上,您正在采取一种安全措施,以防止脚本在您不知情的情况下将数据从一个站点移动到另一个站点。
除非您可以在googleapis.com上编辑标题,否则我发现解决此问题的最简单方法是jQuery-File-Upload。它适用于跨域:)
您还可以将其设为'jsonp'dataRequest,用于跨域通信。
可以轻松修复如果您可以通过添加
来控制接收/响应服务器Access-Control-Allow-Origin: *
到标题。但是,您可能无法编辑googleapis.com的标题。
Access-Control-Allow-Origin error sending a jQuery Post to Google API's