为什么此媒体上传失败并且访问控制来源不允许?'?

时间:2014-04-18 07:04:26

标签: google-drive-api

这是请求和回复

**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.

通过确认,其他一切似乎都可以......

  • 我刚刚创建了我要上传内容的文件,因此它不是权限
  • 如果我替换uploadType = media - > =多部分,然后我可以 正确创建包含内容的新文件。

所以感觉像是

之一
  • 我以某种方式错误地形成了请求
  • 驱动程序错误

Drive API记录在https://developers.google.com/drive/web/manage-uploads#simple

所以我问,我的请求是不是由API指定的,或者是指定的,API是否已损坏。

1 个答案:

答案 0 :(得分:0)

正如人们评论的那样:看起来像是一个跨域问题。

我假设您使用javascript来发出此请求;

基本上,您正在采取一种安全措施,以防止脚本在您不知情的情况下将数据从一个站点移动到另一个站点。

除非您可以在googleapis.com上编辑标题,否则我发现解决此问题的最简单方法是jQuery-File-Upload。它适用于跨域:)

您还可以将其设为'jsonp'dataRequest,用于跨域通信。


可以轻松修复如果您可以通过添加

来控制接收/响应服务器
Access-Control-Allow-Origin: * 

到标题。但是,您可能无法编辑googleapis.com的标题。


来源: http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp-jquery-and-php/

Access-Control-Allow-Origin error sending a jQuery Post to Google API's

http://cypressnorth.com/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/