今天研究了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. 递推DP HDOJ 5328 Problem Killer

    题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...

  2. 李洪强iOS开发之OC面向对象—多态

    OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...

  3. hdu 1847 Good Luck in CET-4 Everybody!(简单博弈SG)

    #include<stdio.h> #include<string.h> #define N 1010 int hash[N]; int sg[N]; void GetSG() ...

  4. UNIX网络编程——网络IPC:套接字

    UNIX网络编程——网络IPC:套接字 Contents 套接字接口 套接字描述符 寻址 字节序 地址格式 地址查询 绑定地址 建立连接 数据传输 套接字选项 带外数据 UNIX域套接字 使用套接字的 ...

  5. android-exploitme(六):基础加密

    这次我们看看程序在设备上存储了什么敏感信息 (server-env)sartre:AndroidLabs2 maxim$ adb shell # cd /data/data/com.securityc ...

  6. c++继承中的内存布局

    今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的.看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用. ——谈VC++对象模型(美)简.格雷程化    译 译者前言 一个C ...

  7. 277. Find the Celebrity

    题目: Suppose you are at a party with n people (labeled from 0 to n - 1) and among them, there may exi ...

  8. SparkContext和RDD

    SparkContext.scala实现了一个SparkContext的class和object,SparkContext类似Spark的入口,负责连接Spark集群,创建RDD,累积量和广播量等. ...

  9. mysql union和union all

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集.UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型. union 是对数据进行并集操作,不包括重复 ...

  10. dojo 三 类和继承 dojo/_base/declare

    这里要讲有关类的定义.继承和实现.官方教程:http://dojotoolkit.org/documentation/tutorials/1.7/declare/类的声明是通过declare 这个方法 ...