jQuery中的$ .post()没有按预期工作

时间:2010-03-30 17:48:58

标签: jquery

$('a').click(function(event){
            $('body').html('loading...');
            $.post('www.sitename.com/hello',{site:"http//:www.google.com"},function(data) {
                    alert(data);
             });
             event.preventDefault();


     });

我使用上面的脚本来覆盖链接的默认行为。这里引用的网站返回'site'参数的HTML。但是页面在打印加载后就停止了......

3 个答案:

答案 0 :(得分:3)

看起来很好。您是否尝试访问外国域名?
Ajax跨域策略不允许这样做。

答案 1 :(得分:1)

使用jQuery.ajax调试代码,添加错误处理程序(错误可能在您的hello处理程序上,JavaScript访问被拒绝异常等):

$.ajax({
    type: "POST",
    url: "/hello",
    dataType:"html",
    data:{site:"http//:www.google.com"},
    success:function(data){
       alert(data);
    },
    error:function (xhr, ajaxOptions, thrownError){
       alert(xhr.statusText);
    }    
});

另外,请确保网址为 http:// ,而不是 http //:,并检查错误控制台是否存在其他JavaScript错误 - Ctrl < Firefox上的/ kbd> + Shift + J

答案 2 :(得分:0)

尝试将$ .post()替换为:

$('body').load('www.google.com');

编辑:这不起作用,因为Google的页面(包括标题)的整个dom将被插入到。