我在vanilla js学习AJAX。我通过以下代码获得了get请求(AJAX)。
document.addEventListener('DOMContentLoaded', () => {
console.log('ready!');
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === 4)
document.getElementById('file-data').innerText = xhr.responseText;
xhr.send();
}
xhr.open('GET', 'file:///E:ada/kk.js', true);
});
这在Firefox中完美运行但在chrome中我遇到以下错误: -
kk.js:7 Failed to load file:///E:/ada/kk.js: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
xhr.onreadystatechange @ kk.js:7
kk.js:7 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': The object's state must be OPENED.
at XMLHttpRequest.xhr.onreadystatechange (file:///E:/ada/kk.js:7:9)
at XMLHttpRequest.xhr.onreadystatechange (file:///E:/ada/kk.js:7:9)
at HTMLDocument.document.addEventListener (file:///E:/ada/kk.js:9:5)
那是因为您从本地计算机加载文件,因为它不是http调用,您会收到cors错误消息
您应该将文件托管在http://example.com/path/to/file
等网址中,或者在本地服务器中提供