如何在URL上发送AJAX请求

时间:2010-12-27 12:31:50

标签: php javascript jquery ajax

嗨,我不确定你们是否会让我失望,因为我是西班牙人,我会说英语,但我会尝试一下: 我希望当用户在http://www.facebook.com/profile.php?id=000000001之类的URL浏览器中发送时,浏览器不会向服务器发送请求,并且AJAX会在DIV中加载内容。 我怎样才能使它工作? 我希望你能帮助我,帮助我。 感谢

4 个答案:

答案 0 :(得分:1)

如果您更改地址,浏览器将始终重新加载页面。处理页面更改的Ajax方法是使用hash标记,这是井号后的所有内容(#)

www.example.com#页=一个 www.example.com#页=两个 www.example.com#页= 3及更多=参数

答案 1 :(得分:1)

这是一个复杂的问题,您可以使用hashbangs(http://www.facebook.com/profile.php#!000000001),因为它们不会强制浏览器(重新)加载页面,但是如果加载了页面,您可以通过AJAX捕获它们。如果您不想使用hashbangs,HTML5历史记录界面http://www.w3.org/TR/html5/history.html将成为一种方法,但许多浏览器都不支持它,但我在chrome下制作了一些工作内容。

答案 2 :(得分:1)

您可以使用Fiddler来嗅探通过AJAX发送到服务器的数据,然后您可以编写HTTPWebRequest / Response来模拟它。

答案 3 :(得分:0)

您可以使用此函数在URL上使用GET进行Ajax调用:

$.extend({
    getUrlVars: function(){
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++){
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function(name){
        return $.getUrlVars()[name];
    }
});

解析参数:

$(document).ready(function(){
    // load ajax call
    if( $.getUrlVar('param') != null ){
        $.ajax({
            data: {
                something_var: $.getUrlVar('param')
            },
            success: function(data){
              alert(data);
            }
        });
    }
});

示例网址:http://www.website.com/?param=ok

希望这是你想要的:)