热门IT资讯网

ajax跨域传输JSONP

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,环境后台 Apache2.2 php5.5 mysql 5.2 不是ASP的例子前台代码: (请将此 复制随便的 HTML文件里)$(function(){$('#send').click(funct

环境
后台 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",
success: function(data){
alert('成功');
alert(data.test1);
alert(data.test2);
alert(data.test3);
},
error: function(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);
}
}

调用方法的代码

/**
* 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();
}
}

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


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

0