背景:在写H5+APP的时候,需要数据库的数据,则使用ajax去与数据进行交互,但手机的IP和服务器的IP是不同的,所以涉及到了跨域的问题,查了很多资料,ajax的get请求可以通过jsonp来支持跨域,而post的跨域会比较复杂,暂时还不会
注意jsonp相对于json会对一层$callback
贴上代码
客户端:
<script type="text/javascript">
$(function(){
// alert("ok!");
$.ajax({
url : 'http://1.sckandroid.sinaapp.com/Test/get_alluser',
dataType : 'jsonp',
type : 'get',
success:function(data){
len = data.length;
for(i = 0 ; i < len ; i++){
var str = "<tr><td>" + data[i]['id'] + "</td>";
str += "<td>" + data[i]['username'] + "</td>";
str += "<td>" + data[i]['password'] + "</td>";
str += "<td>" + data[i]['nickname'] + "</td></tr>";
$("#user").append(str);
}
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
$("#btn").click(function(){
$("#label").html("123456");
});
});
</script>
服务端:
public function get_alluser(){
$user = M("user");
$data = $user->select();
$len = count($data);
$resule = array();
for($i = 0 ; $i < $len ; $i++){
$result[$i] = array('id' => $data[$i]['id'],'username' => $data[$i]['username'],'password' => $data[$i]['password'],'nickname' => $data[$i]['nickname']);
}
header('Content-type: application/json');
//获取回调函数名
$callback = $_REQUEST ['callback'];
$json = json_encode($result);
echo $callback . "(" . $json . ")";
}