Javascript 被CORS阻止的json文件
在我的学校项目中,我使用了一个链接到Raspberry pi的硬件按钮,并让它根据按钮按下(用Python编码)给出一个真值或假值。这保存在Pi上的本地json文件中,我使用javascript将值发送到本地网站 问题是,我在浏览器的控制台中遇到此错误: 访问位于“”的XMLHttpRequestfile:///home/pi/website/button-status.jsonCORS策略已阻止来自源“null”:跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、chrome不受信任、https 我已经在我的笔记本电脑上测试了代码,它运行良好,只是在Pi上它给出了这个错误。我在Pi上使用chromium作为浏览器 有人知道为什么会发生这种情况以及如何解决吗?提前谢谢 Python代码:Javascript 被CORS阻止的json文件,javascript,python,json,cors,Javascript,Python,Json,Cors,在我的学校项目中,我使用了一个链接到Raspberry pi的硬件按钮,并让它根据按钮按下(用Python编码)给出一个真值或假值。这保存在Pi上的本地json文件中,我使用javascript将值发送到本地网站 问题是,我在浏览器的控制台中遇到此错误: 访问位于“”的XMLHttpRequestfile:///home/pi/website/button-status.jsonCORS策略已阻止来自源“null”:跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、chro
import json
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
waar = 1
nWaar = 0
button_status = False
path = "/home/pi/website"
def save_button_status():
with open(path + "/button-status.json", "w") as f:
json.dump({'status': button_status}, f)
while True:
input_state = GPIO.input(17)
if input_state == False :
if waar == 1:
print('Button Press True')
button_status = True
save_button_status()
waar = 0
nWaar = 1
sleep(5)
if input_state == True:
if nWaar == 1:
print('Button Press False')
button_status = False
save_button_status()
waar = 1
nWaar = 0
Javascript:
function get(url, success) {
console.log('hoi');
//--- Get JSON data at the given URL and call success if successful
const request = new XMLHttpRequest();
request.open("GET", url, true);
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
success(JSON.parse(request.responseText));
}
};
request.send();
}
function receiveStatus(response) {
if (response.status !== status) { // only do something if status has changed
status = response.status;
console.log('button status is now', status);
}
}
let status;
let interval = setInterval(() => get("button-status.json", receiveStatus), 2000);
你应该看看我找到的这篇媒体文章,我认为它应该有助于解决你的问题,更好地理解CORS 它所说的是,您只需要调整请求中的标题,以允许来自特定位置的特定响应。它使用一个URL,但我认为如果你在本地网络上,直接IP地址应该是可以的。如果你在远离网络的地方工作,你必须设置一些端口转发,如果这是一个学校项目,可能会对他们制定的任何网络法规造成困难