如何在javascript中通过url获取一些页面
How to get some page by url in javascript
我想使用 javascript 从网站获取页面。我有这样的网址:
http://not-my-site.com/random
从"随机",我将被重定向到网站上的另一个(随机)页面。
邮递员做我想做的事:)它得到整个页面(html)。但是我怎样才能从javascript中做同样的事情呢?
我按照本指南尝试了 CORS alredy http://www.html5rocks.com/en/tutorials/cors/但没有成功。我仍然只是收到一个错误:
XMLHttpRequest cannot load http://not-my-site.com/random.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
教程中的代码:
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// Otherwise, CORS is not supported by the browser.
xhr = null;
}
return xhr;
}
var xhr = createCORSRequest('GET', 'http://not-my-site.com/random');
if (!xhr) {
throw new Error('CORS not supported');
}
xhr.onload = function() {
var responseText = xhr.responseText;
console.log(responseText);
// process the response.
};
xhr.onerror = function() {
console.log('There was an error!');
};
xhr.send();
我也尝试了像这样的常见 xhr(得到同样的错误):
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://not-my-site.com/random', true);
xhr.send();
这似乎是服务器上未正确配置 CORS 的问题。下面的 PHP 代码应该允许来自任何域的任何请求。(如果你不使用PHP,应该很容易将下面的代码转换为任何其他语言,线索是写入HTTP头)。
请记住在输出任何 HTML 之前放置此代码。
$origin=isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:$_SERVER['HTTP_HOST'];
header('Access-Control-Allow-Origin: '.$origin);
header('Access-Control-Allow-Methods: POST, OPTIONS, GET, PUT');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: Authorization, X-Requested-With');
header('P3P: CP="NON DSP LAW CUR ADM DEV TAI PSA PSD HIS OUR DEL IND UNI PUR COM NAV INT DEM CNT STA POL HEA PRE LOC IVD SAM IVA OTC"');
header('Access-Control-Max-Age: 1');
接受来自所有域的请求是不安全的。有关更好(但稍微复杂)的解决方案,请参阅此处: 适用于IE,Firefox,Chrome和Safari的CORS
相关文章:
- Firebase-登录时获取url
- 正在捕获.单击以获取URL
- Javascript获取url并通过添加到其中进行重定向
- 如何使用javascript从同一浏览器下的其他页面获取URL?有可能吗
- 如何从Beautiful Soup获取URL
- 我想从iframe获取url
- 使用Javascript获取URL参数
- 在 Javascript 中获取 URL-Parameter 不适用于 urlencode'&'
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 如何使用jQuery获取url的最后两个字符
- 使用jquery获取url参数
- 如何获取url中参数的真实值
- 使用表单和POST方法通过Javascript获取URL参数
- nodejs:在OutgoingMessage中获取url
- PHP-忽略换行符获取url
- 如何在Javascript中获取url的hashtag值和amp值
- 获取URL附加的复选框值
- 如何使用Javascript获取URL参数
- 如何使用Javascript获取URL参数
- 从2组单选按钮中获取url