大家好我正在尝试通过这个绘制图形的代码,但是我得到No'Access-Control-Allow-Origin'标头出现在请求的资源上。因此不允许原点'XXXX'访问。我知道有像CORS这样的东西,但我不知道如何使用它。
function get_last_oxygen(location, start_time, end_time)
{
var xmlHttp = null;
var oxy_url = 'http://localhost:8888/' + location + '/oxygen/1/1/last';
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", oxy_url, true );
xmlHttp.send( null );
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var json = JSON.parse(xmlHttp.responseText);
var oxy = document.getElementById('oxygen');
oxy.innerHTML = json.oxygen;
get_oxygen_range(location, start_time, end_time);
//alert(xmlHttp.status + ' ' + xmlHttp.responseText);
}
}
}
function get_oxygen_range(location, start_time, end_time) {
var req_range = null;
var range_url = 'http://localhost:8888/' + location + '/oxygen/1/1/' + start_time + ':' + end_time;;
req_range = new XMLHttpRequest();
req_range.open( "GET", range_url, true );
req_range.send( null );
req_range.onreadystatechange = function() {
if (req_range.readyState == 4) {
var measurements = eval(req_range.responseText);
draw_oxygen_diagram(measurements);
}
}
}
/* Draw a diagram */
function draw_oxygen_diagram(data) {
var container = document.getElementById('container');
//var data = [[1,10], [2,8], [3,11], [4,7], [5,9]];
graph = Flotr.draw(container, [data], {
//shadowSize: 0,
timeUnit: 'second',
yaxis : {
max: 20,
min: 0
},
xaxis : {
mode: 'time'
}
});
}
function refresh() {
var now = Math.round(new Date().getTime() / 1000);
now = 1406906881;
get_last_oxygen('rauco', now - 86400, now);
setTimeout(refresh, 5000);
}
refresh();
答案 0 :(得分:0)
对于PHP服务器,只需启用CORS即可添加此行。
header("Access-Control-Allow-Origin: *");
确保在发送任何其他内容之前设置此项。这意味着在任何echo
语句或html之上。把它放在顶端应该有效。
网站http://enable-cors.org/index.html是了解更多有关CORS以及如何在不同服务器设置上使用它的良好资源。
答案 1 :(得分:0)
" Access-Control-Allow-Origin设置在来自服务器的响应上,而不是客户端请求上,以允许来自不同来源的客户端访问响应。"