0

我想获取一个网站的 html 来检查它的链接,我使用以下 ajax 代码来获取远程网站的 html:

$.ajax({
  type : 'get',
  url : 'proxy.php',
  dataType : 'html',
  success : function(data){
    alert('success');
  },
  error : function(XMLHttpRequest, textStatus, errorThrown) {
  alert('error');
  }
});

proxy.php 是我用来获取数据的代理,因为它不在我的服务器上:

<?php
// Set your return content type
header('Content-type: application/html');

// Website url to open
$daurl = 'http://example.com';
// Get that website's content
$handle = fopen($daurl, "r");

// If there is something, read and return
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

代码总是提醒错误,我不明白一切都很好,因为我不是 ajax 专家,所以我想要任何人都可以为我检查吗?它是错误的ajax数据类型吗?请问代理文件中的标头是否错误???

4

1 回答 1

0

您正在提供proxy.php使用错误检索到的 html 文件Content-type

正确的内容类型应该是text/html而不是application/html.

如果您浏览到您的proxy.php文件,您会看到您没有获得任何内容,并且您的浏览器会尝试下载该页面。

更改为正确的内容类型后,如果您浏览到,proxy.php您将在浏览器中看到内容。

因此,这是您必须更改的行:

<?php
// Set your return content type
header('Content-type: text/html');
于 2013-04-09T09:30:20.767 回答