我不知道如何解决这个问题。
XMLHttpRequest无法加载http://gumball.wickedlysmart.com/?lastreporttime=1302212903099。 Access-Control-Allow-Origin不允许原点http://192.168.0.102。
我用谷歌搜索,人们说我应该添加“访问控制 - 允许 - 来源:*;'在标题
我该怎么做?我把它放在哪里?在HTML文件?还是js文件?
这是我的JS代码。请帮助。
window.onload = function() {
var url = "http://gumball.wickedlysmart.com/?lastreporttime=1302212903099&callback=?";
var request = new XMLHttpRequest();
request.open("GET", url);
request.onload = function() {
if (request.status == 200) {
updateSales(request.responseText);
}
};
request.send(null);
function updateSales(responseText) {
var salesDiv = document.getElementById("sales");
salesDiv.innerHTML = responseText;
}
}
答案 0 :(得分:2)
您不会添加Access-Control-Allow-Origin
标题 - 他们。
这是"Response Header",因此gumball.wickedlysmart.com
的维护者必须将其添加到他们的回复中。
尽管如此,我非常怀疑他们会被说服添加仅限局域网的IP - 192.168.x.x
。
但是,该服务支持JSONP,因此不应该使用标头。这是因为JSONP不是Ajax,不使用XMLHttpRequest
。
相反,JSONP请求是通过将新的<script>
源附加到文档来实现的:
function requestJSONP(url) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.body.appendChild(script);
}
另请注意,?
的{{1}}只是某些图书馆提供的帮助(例如jQuery)。您必须将实际的全局函数名称指定为实际接收响应的callback=?
的值:
callback