zoukankan      html  css  js  c++  java
  • 使用jquery实现跨域请求数据

    首先处理服务器代码,使返回的数据符合特定的格式,为了方便这里使用了php

    test.php代码如下

     1 <?php
     2     $con = mysql_connect("localhost","root","root");
     3     mysql_select_db("test", $con);
     4     
     5     $result = mysql_query("select username,password from user");
     6     while ($row = mysql_fetch_array($result)) {
     7         $com[] = $row;
     8     }
     9     
    10     $callback = $_GET["jsonpcallback"];
    11     $json=json_encode($com);
    12     echo $callback.'('."$json".')';
    13 ?>

    $json的输出值为[{"0":"1","username":"1","1":"1","password":"1"},{"0":"admin","username":"admin","1":"1","password":"1"}],是一个标准的json,但这个页面需要处理跨域,所以需要把json包裹成callback([{"0":"1","username":"1","1":"1","password":"1"},{"0":"admin","username":"admin","1":"1","password":"1"}])的格式输出给浏览器

    html代码如下

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     5 <title>Insert title here</title>
     6 <script src="js/jquery.min.js" type="text/javascript"></script>
     7 <script>
     8 $(function(){
     9     var URL="http://localhost/test.php";
    10     $.ajax({
    11     type : 'GET',
    12     url : URL,
    13     dataType : 'jsonp',
    14     jsonp : 'jsonpcallback',
    15     success : function(data) {
    16         alert(JSON.stringify(data));
    17     }
    18     });
    19 });
    20 </script>
    21 </head>
    22 </html>

    输出结果

    jsonp只支持"GET"的请求,这是加载跨域数据的原理决定的,虽然jquery使用了$.ajax()函数获取数据,但是jsonp获取数据真正做法并不是ajax,而是使用动态加载js的方式。

  • 相关阅读:
    C# DictionaryHelper
    C# Autofac 的 BeanFactory
    正则替换
    java页面表格导出为Excel实现
    CentOS 7 下安装Nginx
    认识Java 虚拟机的架构
    06 查看网卡实时流量
    05 找出占用CPU、内存过高的进程
    04 一键查看服务器资源利用率
    03 批量创建100个用户并设置随机密码
  • 原文地址:https://www.cnblogs.com/zanglitao/p/3819732.html
Copyright © 2011-2022 走看看