请检查此错误

时间:2011-05-18 10:31:32

标签: php jquery curl

<html>
  <head>
    <script type="text/javascript" src="jquery-1.6.1.js"></script>
    <script>
      $('a').click(function(e) {
        e.preventDefault();
        document.location.href='http://www.redirectlink.com?ref='+this.href;
        return false;
      });
    </script>
</head>

<?php          
  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, 'http://192.168.0.14:8081/home/');
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  $curl_response = curl_exec($ch);
  curl_close($ch);

  echo $curl_response;     
?>

这应该有用吗?它卷曲页面,然后当你点击页面上的链接时,它应该重定向到http://www.redirectlink.com?ref='+ this.href卷曲部分可以工作,但它不会重定向。它仍然需要我到原始网址。 jquery-1.6.1.js文件与所有其他文件位于同一目录中。

编辑:问题已解决。需要准备好javascript。

6 个答案:

答案 0 :(得分:2)

我不是jquery的专家,但我相信你需要一个准备好的功能

$.ready(function() {  
   $('a').click(function(e){  
      e.preventDefault();  
      document.location.href='http://www.redirectlink.com?ref='+this.href;  
      return false;  
   });  
});

尝试以上......

答案 1 :(得分:1)

重定向?

四个问题:

1)。您在加载文档之前调用$('a')选择器。你不会得到任何A.你需要将它包装在document.ready或类似的东西中。

$(document).ready(function(){
  //put your script block here.
});

2)。你需要在this.href上编码winsComponent。

3)。您似乎假设它是一个完全限定的URL,而不是相对URL。

4)。如果您要查找的是重定向,则需要使用重定向标头(不需要CURL):

if (array_key_exists('ref', $_GET))
{
  header('Location: '.$_GET['ref']);
  exit;
}

注意 - 这必须超出任何输出...基本上,将你的php块移动到文件的最顶层。


澄清。根本不是重定向器:

if (array_key_exists('ref', $_GET))
{
   echo file_get_contents($_GET['ref'];
}

上面的块用3个易于理解的行替换了所有PHP代码。

答案 2 :(得分:1)

另外,脚本不应该以:

开头
<script type="text/javascript">
...
</script>

答案 3 :(得分:0)

@Mayank,

是对的,

这样做:

<script>
$(document).ready(function(){
    $('a').click(function(e){
        e.preventDefault();
        document.location.href='http://www.redirectlink.com?ref='+this.href;
        return false;
    });
});
</script>

答案 4 :(得分:0)

你需要包装整个事情:

jQuery(document).ready(function($) { [your code] });

答案 5 :(得分:0)

更重要的是,我认为

e.preventDefault();

return false;

有相同的行为。