这是PHP 文档
如果我找不到纯粹的客户端方式来执行此操作,我将在 Ajax 调用中使用它的方法如下。
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
有没有办法代替这个客户端,所以我不必将字符串放在 ajax 上?
这是PHP 文档
如果我找不到纯粹的客户端方式来执行此操作,我将在 Ajax 调用中使用它的方法如下。
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
有没有办法代替这个客户端,所以我不必将字符串放在 ajax 上?
你可以
JS代码:
$.post('phppage.php', { url: url }, function(data) {
document.getElementById('somediv').innerHTML = data;
});
PHP代码:
$url = $_POST['url'];
echo file_get_contents($url);
这会让你得到 url 的内容。
JavaScript 无法从页面上抓取数据。它可以调用本地 PHP 脚本,然后代表它获取数据,但是 JavaScript(在浏览器中)不能这样做。
$.post("/localScript.php", { srcToGet: 'http://example.com' }, function(data){
/* From within here, data is whatever your local script sent back to us */
});
您可以使用 JSONP 和跨源资源共享等选项,但这两者都需要设置另一端,因此您不能只选择一个域并开始触发数据请求。
延伸阅读:同源政策
这个函数将文件作为字符串返回,就像 PHP 一样file_get_contents()
。
function file_get_contents(uri, callback) {
fetch(uri).then(res => res.text()).then(text => callback(text));
}
但是与 PHP 不同的是,JavaScript 将继续执行下一条语句,而不是等待数据返回。
现在是 2020 年和一些现代方法;
async function file_get_contents(uri, callback) {
let res = await fetch(uri),
ret = await res.text();
return callback ? callback(ret) : ret; // a Promise() actually.
}
file_get_contents("https://httpbin.org/get", console.log);
// or
file_get_contents("https://httpbin.org/get").then(ret => console.log(ret));
不是一般意义上的。跨域限制不允许 Javascript 代码执行此操作。
如果目标站点设置了CORS(跨域资源共享),则可以使用 XMLHttpRequest 加载文件。大多数站点都没有,因为出于安全原因,默认情况下它是关闭的,而且很少需要。
如果您只需要包含一个 HTML 页面,您可以将其粘贴在一个<iframe>
元素中。不过,这会受到一些布局问题的影响(页面以固定大小的元素结束)。