制作跨域获取请求

时间:2013-09-11 03:41:11

标签: php jquery ajax json

好的,所以我有这个链接

<a id="link" href="https://yahoo.com" target="blank">Link</a>

然后我有这个脚本:

    var security = function() {
        var link = $('#link').attr('href');
        $.getJSON('http://myweb.com/func.php',function( result ) {
        if ( result % 5 === 0 ) {
            $('#link').attr("href", link);
            alert('his link');  
            } else {
            $('#link').attr('href', 'https://google.com');
            alert('your link');
        }
        });
        $("#link").click(function() {
        $.getJSON('http://myweb.com/func2.php',function( results ) {
            if ( results === results ) {
            location.reload();
            }
        });
        }); 
    };

func.php:

$results = mysqli_query($con,"SELECT * FROM `c_clicks`");
while ( $row = mysqli_fetch_array( $results ) ) {
   $clicks = $row['id'];
   echo $clicks;
}

func2.php:

$results = mysqli_query($con,"INSERT INTO `c_clicks`(`link`,`date`) VALUES('claim',now())");

我想要实现的是,每5次点击,#link就会将用户发送到另一个域。事情是它工作正常,但如果有人撕裂我的网站并切换#link href func.php和func2.php不再可访问,所以他们不工作。我尝试用JSON修复它,但我猜错了。我怎么还能通过不同的服务器执行func和func2?

3 个答案:

答案 0 :(得分:0)

有一些链接会对你有所帮助..

对于当天浏览,请查看此链接http://www.w3.org/TR/access-control/

然后你也可以在jQuery and Cross Domain POST Requests

找到一些有用的片段

最后看一下这个博客http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

希望这一切对你有帮助..

答案 1 :(得分:0)

要在浏览器中发出跨域请求,您需要查看CORS。 CORS或跨源资源共享允许您使用XMLHttpRequest来请求文件,这是$ .getJSON使用的文件,而不是为当前页面提供服务的域。 MDN在CORS上有很好的写作:https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS

具体来说,在您的情况下,您需要查看CORS with php headers其中'slashingweaponæ已设置PHP脚本以允许来自其他域的请求。

答案 2 :(得分:0)

将其添加到每个php文件的顶部:

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

如果这是一个CORS问题,这将让你很快知道。