1
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

$(document).ready( function () { //The page has been loaded...
    var ref = document.referrer; //Referrer
    var curpg = document.location.href; //Current page URL
    var dataSet = 'ref=' + ref + '&curpg=' curpg + '&shizz1e=21';

    $.ajax({
        type: "GET",
        url: "http://www.domainname.com/ajaxreceiver.php",
        data: dataSet
    });
    return false;
});
</script>

我试图在页面加载后立即将“curpg”、“ref”和“shizz1e”变量提交给 ajaxreceiver.php,无需任何用户干预。我还试图避免刷新页面或将客户端重定向到 ajaxreceiver.php。我不确定为什么这段代码不起作用;dataSet 变量永远不会被发送到 ajaxreceiver.php。

4

3 回答 3

0

1)确保您的请求被实际发送 - 检查您的网络选项卡并添加这些处理程序以获得一些调试帮助:

$.ajax({/*...*/})
   .done(function()  { console.log("success"); })
   .fail(function(jqXHR, status)  { console.log("error: "+status); })
   .always(function(){ console.log("complete"); });

2)您是否不小心进行了禁止的跨域呼叫http://www.domainname.com并且http://domainname.com是导致此问题的常见示例。改用真实路径:/ajaxreceiver.php就足够了。

3) 提供您的 php 代码,以便我们检查其中的错误。也许你不小心使用[POST]了或者像这样的一些小错误。

于 2012-08-20T09:32:01.953 回答
0

我将不得不查看您的服务器端 PHP 代码,因为您的 JavaScript 代码对我来说看起来不错。我认为它应该工作。

尝试这样重写它,虽然:

<script type="text/javascript" src="/path/to/jquery.js"></script>
<script type="text/javascript">
    $(document).ready( function () {
        var referrer = document.referrer;
        var current_page_url = $(location).attr('href');
        var data_object = {
            'ref':        referrer,
            'curpg':      current_page_url,
            'shizz1e':    '21'
        };

        $.ajax({
            'url':        "http://your.url.com/php_script.php",
            'data':       data_object,
            'success':    function (return_data) {
                // Do something on success.
            }
        });
    });
</script>

在我看来,这只是更干净一点。请展示您的一些服务器端 PHP 代码,这样我真的可以帮助您找出问题所在。

于 2012-08-20T10:55:16.063 回答
0

如果您要将 URL 作为参数发送,则必须使用encodeURI()orencodeURIComponent()函数转义其中的某些字符。

于 2012-08-20T09:30:12.840 回答