2014-09-10 32 views
0

也就是說,版本11.0.9431.0使用IE11簽名的網址不起作用

我不能從IE11上傳文件到谷歌雲存儲,我能夠從Firefox上傳相同的代碼文件,它顯示錯誤CORS未啓用,但我已啓用CORS在谷歌的雲存儲桶

CORS,我已經設置爲:

[ 
    { 
    "origin": ["*"], 
    "responseHeader": ["accept-encoding", "cache-control", "content-length", "content-type",  "expect", "if-modified-since", "origin", "range", "referer", "x-goog-acl", "x-goog-api-version"], 
    "method": ["GET","PUT","HEAD","OPTIONS"], 
    "maxAgeSeconds": 900 
    } 
] 

Error on console that I get on IE11 is: 

SEC7118: XMLHttpRequest for https://storage.googleapis.com/buckethha/file.j[email protected]developer.gserviceaccount.com&Expires=1410349523&Signature=ImoOVE0XUBPOfCzMGrNXG0W1P1xJE80Jyee5gD%2FMcCp0uTxVf9GdMTayNESFw4qslrcDMMjU1otI4O4s15pMx9g136uEWnVkDrLc3hN6LGcnFpd1VuV9cjB%2BewnuHs3AqVJYH9PCKXNCkl%2FR%2Bwwm4rrKOjz3KApAAZblCzEeoFE%3D required Cross Origin Resource Sharing (CORS).File: UploadSignedUrlPut.php 
SEC7119: XMLHttpRequest for https://storage.googleapis.com/buckethha/file.j[email protected]developer.gserviceaccount.com&Expires=1410349523&Signature=ImoOVE0XUBPOfCzMGrNXG0W1P1xJE80Jyee5gD%2FMcCp0uTxVf9GdMTayNESFw4qslrcDMMjU1otI4O4s15pMx9g136uEWnVkDrLc3hN6LGcnFpd1VuV9cjB%2BewnuHs3AqVJYH9PCKXNCkl%2FR%2Bwwm4rrKOjz3KApAAZblCzEeoFE%3D required CORS preflight.File: UploadSignedUrlPut.php 

我的HTML,PHP代碼 - >http://pastebin.com/qCkT1mr8

注:我應該添加代碼或要求解決這個問題? IE 9,10和11是我的應用程序的官方支持瀏覽器,所以我必須以某種方式修復此問題

+0

我想,這可能是由於您只需要使用'XMLHttpRequest'對象在您的JS代碼的事實 - 我建議你使用像FE庫/框架jQuery,爲您照顧跨瀏覽器問題... – CBroe 2014-09-10 13:49:49

+1

但IE10和11是否支持xmlhttprequest http://caniuse.com/#search=xmlhttprequest – 2014-09-11 05:36:21

+0

@CBroe它也顯示我的XMLHTTPRequest警告消息,這將會發生僅當我的請求被髮送時... – 2014-09-11 05:59:22

回答

0

仔細觀察後,我才知道I.E中顯示的警告。沒有指出我正確的方向,實際的問題是,上傳文件與PUT Firefox正在發送內容類型與請求,這就是爲什麼我的簽名與Google匹配,並且IE不明確發送它,因此增加它已經解決了我的問題

i.e. 
xhr.setRequestHeader("Content-Type", file.type);