ajax跨域获得JSON数据的问题

发布于 2021-11-05 09:39:12 字数 346 浏览 753 评论 4

我在tuan.abc.com下边发起一个异步的ajax 请求 请求的URL 是以 abc.com 开头的,得不到 response回去的数据了,请问有什么别的方法么,,我按着百度上的方法试了一试
http://blog.csdn.net/ajun_studio/article/details/6633065,但是还是不行,大家如果有解决的办法,求教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

眼眸 2021-11-08 18:47:40

就是用文章中介绍的。jsonp。

我给个例子给你kan

function islogin(){
    var base_url = "http://www.abc.com/";
    var weidenglu = '<a href="'+base_url+'user/login">登录</a> | <a href="/user/regist">注册</a>';
    
    $.getJSON(base_url+'user/islogin?jsoncallback=?',{x:Math.random()},function(data){
        if(data.success){
            var htm = '欢迎您,<a href="'+base_url+'user/index" class="fb accepted">'+data.username+'</a><a href="'+base_url+'user/logout">【退出】</a>';
            $("#user_info").html(htm);
        }else{
            $("#user_info").html(weidenglu);
        }
	});
}

看以上代码,

url中的jsoncallbank参数是必须的。应为jquery会返回函数ID传入,

你在看下一php代码就知道了。

public function islogin(){
        $jsoncallback = $_GET['jsoncallback'];
        if(!empty($_SESSION['userinfo']['username'])){
            //有昵称显示昵称,未设置昵称显示用户名
            $username = !empty($_SESSION['userinfo']['nick_name'])?$_SESSION['userinfo']['nick_name']:$_SESSION['userinfo']['username'];
            die($jsoncallback . "(" . json_encode(array('success' => true, 'username' =>$username)) . ")");
        }
        die($jsoncallback . "(" . json_encode(array('success' => false, 'msg' =>"未登录")) . ")");
    }

草莓味的萝莉 2021-11-08 18:25:03

在页面上建立一个隐藏的iframe,src指向外域。在iframe的load事件里面进行处理。

草莓味的萝莉 2021-11-08 18:13:57

能不能说得详细点呀?

无边思念无边月 2021-11-08 18:10:09

相同根域的只需要设置document.domain,就可以通过iframe传递数据

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文