以下代碼在Safari上正常工作。如何以同步方式加載文件? (訪問控制允許來源)
在Chrome,它失敗,因爲:
"XMLHttpRequest cannot load file:///Users/jem/Sites/AA/data/articles.csv. Origin null is not allowed by Access-Control-Allow-Origin."
這是什麼意思?如何使用同步調用正確讀取此文件?
function(file) {
var content;
$.ajax({
url : file,
success : function (data) {
content = data.split(/\r\n|\n/);
},
async: false
});
return content;
}
這是可怕的是Safari瀏覽器將讓你這樣做......的東西這樣想'文件:/// PROC/cpuinfo',將讓一個惡意網站檢測架構和其他信息,可以讓它嘗試更精確的感染。雖然這種方式不能修改,但是很多數據可以通過'/ proc'訪問。許多有價值的,可挖掘數據的,可破解的數據。 '/ proc'中的幾乎任何數據都可能被惡意使用。 – Linuxios
Duplicates:http://stackoverflow.com/questions/5224017/origin-null-is-not-allowed-by-access-control-allow-origin-in-chrome-why,http://stackoverflow.com/questions/4208530/xmlhttprequest-origin-null-is-not-allowed-access-control-access-allow-for-file,http://stackoverflow.com/questions/10865869/origin-null-is-not-allowed-by -access-control-allow-origin,http://stackoverflow.com/questions/8456538/origin-null-is-not-allowed-by-access-control-allow-origin,http://stackoverflow.com/questions/3851691 /負載本地JSON-文件,通過文件的觸發跨網域無效起源違章-S。 – apsillers
@Linuxios Safari可能會[像Firefox一樣](https://developer.mozilla.org/en-US/docs/Same-origin_policy_for_file:_URIs)並將'file:'頁面的原點限制在同一個目錄或子目錄中。因此,如果您在Downloads文件夾中打開一個新下載的HTML文件,它可能會在該目錄中讀取文件,但它可能*不會*上*文件系統樹以到達'/ proc'。 (這並不是說讓一個奇怪的HTML頁面讀取下載文件夾中的任何文件當然是一件好事!) – apsillers