我们项目中用到的jsonp跨域

js脚本部分

//自动学员登陆
$(‘.xs_right‘).each(function(){
var xy_isLogin = ($.cookie(‘snsCookieCheckUid‘)>0) ? true : false;
var jg_isLogin = ($.cookie(‘jgCookieCheckUid‘)>0) ? true : false;
if(xy_isLogin){
$.cookie(‘jgCookieCheckUid‘, null, { path: ‘/‘});
$.ajax({
url:‘http://k.thea.cn/index.php?c=login&a=ajaxuserinfo&callback=?‘,
type:‘get‘,
dataType:‘jsonp‘,
success:function(data){
if(data.flag=="ajaxok"){
$(‘.xs_log‘).show();
$(‘.xs_right‘).hide();
$(‘.xs_log‘).each(function(){
var $this = $(this);
var $zhic = $(‘.xsl_rank‘,$this);
var $i = 0;
var $k_url = data.dat.avatar;
if($k_url.indexOf(‘http‘) < 0){
$k_url = ‘http://k.thea.cn‘ + $k_url;
}
$(‘.xsl_img img‘,$this).attr(‘src‘,$k_url);
//$(‘.xsl_img img‘,$this).attr(‘src‘,data.dat.avatar);
$(‘.xsl_img strong‘,$this).html(data.dat.username);
$(‘p .xsl_gold b‘,$this).html(data.dat.kcurrency);
$i = parseInt(data.dat.vip) ;

})

})

然后路径为http://k.thea.cn/index.php?c=login&a=ajaxuserinfo&callback后台部分:

public function ajaxuserinfo()
    {
        $callback = $_REQUEST["callback"];

        if($this->memberId == 0)
        {
            echo $callback.‘({"flag":"nologin","message":"请先登录!"})‘;
        }
        else
        {
            $dat=$this->memcache->funGetUserInfo($this->memberId);
            $dat = $dat[0];

            if($dat[‘uid‘])
            {
                $r = array(
                    ‘flag‘ => ‘ajaxok‘
                );
                $r[‘dat‘] = $dat;
                echo $callback.‘(‘.json_encode($r).‘)‘;
            }
            else
            {
                echo $callback.‘({"flag":"error","message":"抱歉,获取信息失败!"})‘;
            }
        }
    }
}

over了。

时间: 2025-01-02 01:27:29

我们项目中用到的jsonp跨域的相关文章

深入剖析jsonp跨域原理

在项目中遇到一个jsonp跨域的问题,于是仔细的研究了一番jsonp跨域的原理.搞明白了一些以前不是很懂的地方,比如: 1)为什么jsonp跨域只能是get请求,而不能是post请求: 2)jsonp跨域的原理到底是什么魔法: 3)除了jsonp跨域之外还有那些方法绕过“同源策略”,实现跨域访问: 4)jsonp和ajax,或者说jsonp和XMLHttpRequest是什么关系: 等等. 1.同源策略 说到跨域,首先要明白“同源策略”.同源是指:js脚本只能访问或者请求相同协议,相同domai

原生JS封装Ajax插件(同域&amp;&amp;jsonp跨域)

抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正确的地方,还望指正^_^ 一.Ajax核心,创建XHR对象 Ajax技术的核心是XMLHttpRequest对象(简称XHR),IE5是第一款引入XHR对象的浏览器,而IE5中的XHR对象是通过MSXML库中的一个ActiveX对象实现的,因此在IE中可能有3个版本,即MSXML2.XMLHttp.

jsonp 跨域原理详解

JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略).这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进行多iframe或多窗口编程.以及Ajax编程时显得尤为重要.根据这个策略,在baidu.com下的页面中包含的JavaScript代码,不能访问在

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)

1.同源策略 同源策略(Same origin policy),它是由Netscape提出的一个著名的安全策略.同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现,现在所有支持JavaScript 的浏览器都会使用这个策略. 所谓同源,就是指两个页面具有相同的协议,主机(也常说域名),端口,三个要素缺一不可. 所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问

原生jsonp跨域

<script> // jsonp跨域原生写法 var script = document.createElement('script'); script.src = 'http://192.168.7.16/kuayu/test02.php?callback=aa'; document.body.appendChild(script); //aa('后台数据') function aa(res) { alert(res.website); } </script>

JSONP跨域的原理解析

JSONP跨域的原理解析 一种脚本注入行为 在 2011年10月27日 那天写的     已经有 99238 次阅读了 感谢 参考或原文 JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略).这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进

jQuery和java后台的jsonp跨域问题

Jsonp原理: ajax本身是不可以跨域的,通过产生一个script标签来实现跨域.因为script标签的src属性是没有跨域的限制的.其实设置了dataType: 'jsonp'后,$.ajax方法就和ajax XmlHttpRequest没什么关系了,取而代之的则是JSONP协议.JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问. JSONP是一种脚本注入(Script Injection)行

JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子: 一.客户端 Html代码   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.