初学者,所以请保持温柔。一段时间以来,我一直在尝试使用XMLHttpRequest从Walmart API获取json文件,并始终得到该错误:
XMLHttpRequest无法加载 http://api.walmartlabs.com/v1/items?apiKey= {apikey}&安培; UPC = 035000521019。 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此,不允许原点'null'访问。
我正在使用Apache服务器,我在其中将以下代码插入到httpd.conf文件中,特别是为了摆脱Access-Control-Allow-Origin错误。仍然没有。
LoadModule headers_module modules/mod_headers.so
和
<IfModule mod_headers.c>
# Accept cross-domain requests
Header always set Access-Control-Allow-Origin "*"
请注意,由于显而易见的原因,我不会在此处提供我的API密钥,但在编码时我在网址中插入了Wal Mart给我的API密钥。问题不在沃尔玛方面,因为当我在Chrome中输入网址时,它会获取JSON文件的文本内容。所以...这是我的代码,请帮助,我是无知的。
function ajaxGet(url,callback){
req = new XMLHttpRequest();
req.open("GET", url);
req.addEventListener("load", function (){
if (req.status>=200 && req.status<400){
callback(req.responseText);
} else {
console.error("Erreur no." + req.status );
}
});
req.send(null);
}
function setHtml(texte){
var ouin = JSON.parse(texte);
var product = slashString(ouin.items[0].categoryPath);
var brand = ouin.items[0].brandName;
var price = ouin.items[0].salePrice;
document.getElementById("brand").innerHTML = brand;
document.getElementById("product").innerHTML = product;
document.getElementById("price").innerHTML = price;
}
function slashString(texte){
var n = texte.lastIndexOf("/");
var texte = texte.slice(n+1, texte.length);
return texte.toLowerCase();
}
ajaxGet("http://api.walmartlabs.com/v1/items?apiKey={apikey}&upc=035000521019",setHtml);