<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。
答案 0 :(得分:0)
如果您要将网址作为参数发送,则必须使用encodeURI()
或encodeURIComponent()
函数转义其中的某些字符。
答案 1 :(得分:0)
1)确保您的请求实际发送 - 检查您的网络选项卡并添加这些处理程序以获得一些调试帮助:
$.ajax({/*...*/})
.done(function() { console.log("success"); })
.fail(function(jqXHR, status) { console.log("error: "+status); })
.always(function(){ console.log("complete"); });
2)你是否意外地做了被禁止的cross-domain call? http://www.domainname.com
和http://domainname.com
是导致此问题的常见示例。改为使用实际路径:/ajaxreceiver.php
就足够了。
3)提供您的PHP代码,以便我们可以检查那里的错误。也许你意外地使用了[POST]
或者像这样的小错误。
答案 2 :(得分: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代码,这样我就可以帮助您找出问题所在。