0

好的,所以我有这个链接

<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();
            }
        });
        }); 
    };

函数.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 ?

4

3 回答 3

0

要在浏览器中发出跨域请求,您需要查看 CORS。CORS 或跨域资源共享允许您使用 $.getJSON 使用的 XMLHttpRequest 从服务于当前页面的域以外的域请求文件。MDN 有一篇关于 CORS 的精彩文章:https ://developer.mozilla.org/en/docs/HTTP/Access_control_CORS

具体来说,在您的情况下,您需要查看带有 php 标头的 CORS,其中 'slashingweaponæ 设置了一个 PHP 脚本以允许来自其他域的请求。

于 2013-09-11T03:51:49.823 回答
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/

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

于 2013-09-11T03:44:22.450 回答
0

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

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

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

于 2013-09-11T06:58:43.883 回答