温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ajax跨域传输JSONP

发布时间:2020-04-10 23:03:21 来源:网络 阅读:1037 作者:飘飘留香 栏目:开发技术

环境
            后台  Apache2.2   php5.5  mysql 5.2  不是ASP的
 例子
            前台   
                    代码: (请将此 复制随便的 HTML文件里)
    
<html>
<head>
<script src="jquery.js"></script>
<script>
$(function(){
$('#send').click(function(){
$.ajax({
type"POST",
url"http://127.0.0.1/admin.php/java",
data: {},
dataType"JSONP",
// jsonp: "jsonpReturn",
jsonpCallback:"jsonpReturn",
successfunction(data){
alert('成功');
alert(data.test1);
alert(data.test2);
alert(data.test3);
},
errorfunction(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
});
});


</script>

</head>
<body>
<div id='send' style="width:500px;height:500px;background-color:green;">
bbbbb
</div>
</body>
</html>

    后台    
                代码:
            1.主要方法   不管是什么框架的  包含此方法然后返回值用  ajaxReturn  就可以(重要说明 这里的 方法名字必须要在访问的HTML中 声明ajaxcallback 方法 名字 为此

                        

function ajaxReturn($data,$type='') {
if(empty($type)) $type 'JSON';
switch (strtoupper($type)){
case 'JSON' :
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data));
case 'XML' :
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler isset($_GET['VAR_JSONP_HANDLER']) ? $_GET['VAR_JSONP_HANDLER'] : 'jsonpReturn';
exit($handler.'('.json_encode($data).');');
case 'EVAL' :
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
}
}

  调用方法的代码
        
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2015-10-06
* Time: 0:21
*/
class Java {

function index(){
$data array("test1"=>"aaa","test2"=>"bbb","test3"=>"ccc");
// P(ajaxReturn($data,'JSONP'));
ajaxReturn($data,'JSONP');


// $this->display();
}
}

最后访问这个控制器就可以了
    成功 返回的就是
              
 

              转载请声明
                                                                                                                                                      ------爷是大腿 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI