今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友

客户端代码

复制代码 代码如下:
<%@ Page Language="C#"
AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" >
<head
runat="server">
<script src="jquery-1.7.1.min.js"
type="text/javascript"></script>
<script
type="text/javascript">
    function aa() {
       
$.ajax({
            url:
"http://localhost:12079/WebForm2.aspx",
            data:
"p1=1&p2=2&callback=?",
            type: "post",
           
processData: false,
            timeout: 15000,
            dataType:
"jsonp",  // not "json" we'll parse
            jsonp:
"jsonpcallback",
            success: function(result) {
           
alert(result.value1);
            }
        });
   
}

</script>
   
<title></title>
</head>
<body>
    <form
id="form1" runat="server">
    <div>

</div>
   
</form>
    <p>
        <input id="Button1" type="button"
value="button" onclick="aa()"
/></p>
</body>
</html>

服务器端代码

复制代码
代码如下:
 public partial class WebForm2 :
System.Web.UI.Page
    {
        protected void Page_Load(object sender,
EventArgs e)
        {

string callback =
Request["callback"];
            string v1="1";
            string
v2="2";
            string response = "{\"value1\":\"" + v1 +
"\",\"value2\":\"" + v2 + "\"}";
            string call = callback + "(" +
response + ")";
            Response.Write(call);
           
Response.End();
        }
    }

客户端页面和服务器端页面在两个项目中,以便进行跨域调用测试。

跨域实例代码(需要加载jquery,页面为utf-8编码):

复制代码
代码如下:
 <!--拉勾招聘数据-->
  <script
type="text/javascript">
   function
success_jsonpCallback(data){
    var html = '';
    var pos =
'';
    html += '<ul>';
    jQuery.each(data, function(k, v)
{
                 if(k<10){
                  pos = '【' + v.city+ '】'
+ v.positionName + '('+ v.salary +') - '+v.companyName;
      if(pos.length
> 20){
       pos = pos.substring(0,19)+'...';
                    
}
                     html += '<li><a
href="'+v.posiitonDetailUrl+'" target="_blank" title="【' + v.city+ '】' +
v.positionName + '('+ v.salary +') -
'+v.companyName+'">'+pos+'</a></li>';
                
}
    });
    html += '</ul><div class="more-link"><a
href="http://www.lagou.com/jobs/list_%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91"
target="_blank">更多</a></div>';
    jQuery('#lagouData').html(html);
   }

function
getLagouData() {
    jQuery.ajax({
     async:false,
     url:
"http://www.lagou.com/join/listW3cplus?kd=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91",
     type:
"GET",
     dataType: "jsonp",
     jsonpCallback:
'success_jsonpCallback',
     contentType: "application/jsonp;
charset=utf-8",
     success: function(data)
{
      success_jsonpCallback(data);
     }
    });
   }
   getLagouData();
       
</script>
      <div id="lagouData"></div>

jsonp代码:

复制代码
代码如下:
success_jsonpCallback([{"city":"广州","companyName":"POCO.CN","createTime":"15:02发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/16868.html","positionAdvantage":"身处凝聚力团队,老城区上班交通便利,双休","positionName":"商业前端开发工程师","salary":"4k-7k"},{"city":"北京","companyName":"美通云动(北京)科技有限公司","createTime":"14:47发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/16866.html","positionAdvantage":"Html5技术最棒的团队","positionName":"Web前端开发","salary":"4k-8k"},{"city":"杭州","companyName":"口袋购物","createTime":"14:42发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/13024.html","positionAdvantage":"广阔的发展平台、自我价值体现的地方","positionName":"web前端开发工程师","salary":"8k-12k"},{"city":"北京","companyName":"布丁移动","createTime":"14:02发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/1498.html","positionAdvantage":"三餐、周围美女如云","positionName":"Android开发工程师","salary":"10k-20k"},{"city":"北京","companyName":"布丁移动","createTime":"14:02发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/2539.html","positionAdvantage":"三餐,小桥流水人家,美女","positionName":"ios开发工程师","salary":"10k-20k"},{"city":"上海","companyName":"天天动听","createTime":"00:55发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/11494.html","positionAdvantage":"创业氛围
讲求小而美","positionName":"Android开发工程师","salary":"8k-16k"},{"city":"北京","companyName":"LBE安全大师","createTime":"11:39发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/5983.html","positionAdvantage":"五险一金
绩效奖金","positionName":"Android开发工程师","salary":"8k以上"},{"city":"北京","companyName":"点心移动","createTime":"11:24发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/16736.html","positionAdvantage":"技术导向的团队氛围,全方位的福利待遇","positionName":"Android","salary":"15k-25k"},{"city":"广州","companyName":"荔枝FM","createTime":"10:44发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/16634.html","positionAdvantage":"连坚持跑步、保持体重都有奖励哦!","positionName":"WP手机开发工程师","salary":"16k-25k"},{"city":"北京","companyName":"网银-京东子公司","createTime":"10:08发布","posiitonDetailUrl":"http://www.lagou.com:80/jobs/14162.html","positionAdvantage":"负责京东商城-互联网金融产品
JS开发","positionName":"Javascript 前端开发工程师","salary":"10k-20k"}])

您可能感兴趣的文章:

jquery ajax jsonp跨域调用实例代码的更多相关文章

  1. jquery ajax 无法跨域调用的解决办法

    今天要用到jquery ajax 跨域调用,但是ajax是禁止跨域调用的,所以只能先在php文件使用函数取得跨域的值,然后用ajax调用本地php文件.

  2. Ajax jsonp 跨域请求实例

    跨域请求 JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求:它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题. $. ...

  3. JQuery+ajax+jsonp 跨域访问

    Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/ ...

  4. jquery中的jsonp跨域调用

                                                    jquery jsonp跨域调用接口

  5. jquery中的jsonp跨域调用(接口)

                                                                           jquery jsonp跨域调用接口

  6. javascript ajax 脚本跨域调用全解析

    javascript ajax 脚本跨域调用全解析 今天终于有点时间研究了一下javsscript ajax 脚本跨域调用的问题,先在网上随便搜了一下找到一些解决的办法,但是都比较复杂.由是转到jqu ...

  7. 基于jQuery的Jsonp跨域[Get方式]

    由于目前的项目需要无刷新的跨域操作数据,整理了下自己使用的基于jQuery的Jsonp跨域[Get方式]. 代码如下: Javascript部分 $(function(){ $.ajax({ asyn ...

  8. PHP 支持 JQuery 的 JSONP 跨域访问

    Jquery Ajax进行跨域时需要使用JSONP,但JSONP格式和JSON格式是有区别的,如果直接返回JSON格式就会报错 首先将原有的Jquery代码中的dataType改成“jsonp”,具体 ...

  9. jsonP跨域调用

    -------------------------------------jsonP跨域调用------------------------------------- <div class=&q ...

随机推荐

  1. C#产生不重复的随机数并生成随机文件名

    本文转自:http://blog.ciznx.com/post/csharprandomnumberandrandomfilename.aspx 在项目中会遇到需要批量生成文件的时候,比如 asp.n ...

  2. Android 基于Socket的聊天室(一)

    Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路.一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信. Client A ...

  3. RSS FEED的应用

    参考:http://inezha.com/help/feedrss 今天工作中遇到了一个知识是RSS FEED.当时觉得很奇怪,我们要这个干嘛用?RSS Feed就是一个xml文件.里面不包含数据,但 ...

  4. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  5. mysql 支持中文,防止程序乱码的方法

    1. 查看你的mysql的字符设置 mysql> show variables like 'character%'; +--------------------------+---------- ...

  6. 物联网操作系统Hello China移植mile stone之一:移植基础版本V1.76发布

    Hello China V1.76版发布,这是向ARM系列CPU移植的基础版本.相对V1.75版,该版本主要做了如下的一些调整: 1.  通过宏定义的方式对内核实现了模块化,开发者可以通过开启或关闭预 ...

  7. QT5.3无法自动调用incomingConnection函数的问题(4.7没有这个问题)

    最近将qt4.7的一个工程移到5.3,遇到了几个麻烦事,主要是这个incomingConnection监听后无法自动调用的问题,在4.7上是完全没有问题的,到了5.3就不行,网上也查了下,网友们都是放 ...

  8. z-index无效问题的解决方法

    在使用z-index这个属性之前,我们必须先了解使用z-index的必要条件: 1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:rela ...

  9. CodeSmith连接Mysql配置

    1,首先需要将MySql.Data.dll复制到codesmith安装目录下v6.5/bin文件夹下,注意dll的版本 2,其次采用的是.net4.0的配置文件,找到C:\Windows\Micros ...

  10. (六)C#中判断空字符串的三种方法性能分析

    三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...