【问题标题】:cross-domain GET跨域 GET
【发布时间】:2012-11-04 11:31:01
【问题描述】:

有人很高兴为我编写了一个允许从跨域站点检索数据的脚本。 PHP 看起来像这样:

<?php
if(isset($_GET['site'])){
  $f = fopen($_GET['site'], 'r');
  $html = '';
  while(strpos($html, 'position1_article_1') === FALSE)
    $html .= fread($f, 24000);
  fclose($f);
  echo $html;
}
?>

保存为proxy.php Jquery部分如下所示:

$(function(){

   var site = 'http://www.nu.nl';

   $.get('proxy.php', { site:site }, function(data){

      var href = $(data).find('.hdtitle').first().children(':first-child').prop('href');
      var url = href.split('/');
      href = href.replace(url[2], 'nu.nl');

      // Put the 'href' inside your div as a link
      $('#myDiv').html('<a href="' + href + '" target="_blank">' + href + '</a>');

   }, 'html');

});

问题是我不知道如何获得身体中的所有“a”或某些部分,如 h2、h3 等。有人可以把它分解给我吗?例如;为了获得页面中的所有href,我必须进行哪些更改?

【问题讨论】:

  • 我不太确定你想做什么,你能稍微改一下吗?
  • @ShaneCurran 我想用脚本做几件事,但我不知道它是如何工作的(我不知道 PHP)所以如果有人可以向我解释如何获取正文的所有 href,那么这可以让我更进一步了解它是如何工作的。
  • 我不知道你的html长什么样,但你需要改变这一行,var href = $(data).find('a').prop('href');应该给你所有的 a 标签。
  • @Youss 你不需要做重复的问题,检查这个:stackoverflow.com/a/11887788/1178686现在已经解决了。

标签: php javascript jquery get


【解决方案1】:

试试这个:header('Access-Control-Allow-Origin: *');

然后像这样使用它:

<?php
header('Access-Control-Allow-Origin: *');
if(isset($_GET['site'])){
  $f = fopen($_GET['site'], 'r');
  $html = '';
  while(strpos($html, 'position1_article_1') === FALSE)
    $html .= fread($f, 24000);
  fclose($f);
  echo $html;
}
?>

享受吧!

【讨论】:

  • 当 php 请求与加载 js 文件的页面位于同一域时,添加 Access-Control-Allow-Origin 将如何做任何事情?
猜你喜欢
  • 2015-01-17
  • 2011-07-26
  • 2013-03-02
  • 2013-02-24
  • 1970-01-01
  • 2018-08-28
  • 2015-01-25
  • 1970-01-01
  • 2014-05-29
相关资源
最近更新 更多