我想从另一个域的网页上获取数据,但我得到这个错误
No 'access-control-allow-origin' header is present on the requested resource
我已经尝试了CORS的例子从这个博客http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/但我仍然得到相同的错误。
当我在应用程序中运行页面时,我已经设法获得了页面的内容(与我在Titanium应用程序中所做的一样,现在在浏览器中运行的PhoneGap中工作)
这是我的脚本
function createCORSRequest(method, url){
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr){
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined"){
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
function insertText () {
var artist = [];
var table = document.createElement('TABLE')
var tableBody = document.createElement('TBODY')
table.border = '1'
table.appendChild(tableBody);
var xhr = createCORSRequest('GET', "http://www.rockwerchter.be/en/line-up");
if (!xhr) {
throw new Error('CORS not supported');
}
xhr.open("GET", "http://www.rockwerchter.be/en/line-up");
xhr.send();
xhr.onload = function(){
text = request.responseText;
var regex = new RegExp(".*box-title box-title-h3 mb-05.*", "g");
artist = text.match(regex);
var data = [];
for (var i=0; i<artist.length; i++) {
var tr = document.createElement('TR');
tableBody.appendChild(tr);
artist[i]= artist[i].replace("tttttttttttttttttttttt<h2 class="box-title box-title-h3 mb-05">", "");
artist[i]= artist[i].replace("</h2>","");
tr.innerHTML=artist[i];
}
}
}
如果请求的url是一个PHP文件,你应该在你的页面顶部添加这个标题:
header('Access-Control-Allow-Origin: *');
您可以输入请求它的域,而不是通配符。
根据你的回复,你应该在。htaccess中设置如下:
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
我从这个来源得到这个