[英]why is this a cross domain request
我正在嘗試制作一組文件以發送給某人,他們可以在本地的Web瀏覽器中查看某些內容。 使用Web服務器(Apache)查看時,我的代碼有效,但如果我僅將其作為文件加載(例如file:/// C:/Code/Web/test/index.html),則會收到跨域請求錯誤從我的JavaScript文件加載JSON文件時。 HTML,JS和JSON文件都在同一文件夾中。 我不確定這是一個跨域請求,為什么chrome和IE無法加載JSON文件。 Firefox可以毫無問題地加載它。
我用於加載文件的JS是:
const JSON_FILE = "tin.json";
var xmlhttp;
function webGLStart()
{
fetchDoc(JSON_FILE,loadJSON)
}
function fetchDoc(url,cfunc)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,false);
xmlhttp.send();
}
function loadJSON()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var input = JSON.parse(xmlhttp.responseText);
displayData(input);
}
}
我的html頁面中什么都沒有發生。 它只是畫布,主體在加載時會調用webGLStart。
有沒有解決的辦法,或者這是Chrome和IE不允許的?
它可以保護您免受以下形式的攻擊:
Chrome和IE完全禁止訪問文件方案URI。 僅當主機URI在目錄中且該目錄的祖先包含目標URI時,Firefox才允許它們。
您已經確定了解決方法:在Web服務器上托管Web應用程序。
由於安全原因,瀏覽器必須限制與本地文件系統的交互。 如果要測試ajax請求,則可以設置light http服務器環境(例如lighttpd,node.js npm程序包http-server)或使用開發解決方案之一,例如Microsoft WebMatrix。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.