今天研究了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. installation failed with message null

    http://stackoverflow.com/questions/33315753/installation-failed-with-message-null-genymotion-error I ...

  2. photoshop:找不到增效工具入口点

    按Ctrl+k+9 ,到预设的增效工具栏设置为要存储的文件夹路径:

  3. linux系统主要常见目录结构

    linux系统的一切从“/”开始,并按照文件系统目录标准FHS采用树桩结构来存放文件 并定义了每个区域的用途.

  4. webServer xampp的安装及使用

    一.下载: 西装xampp1.73版本,其他版本可能会出错,为了你能顺利安装,最好用此版本: 二.安装: 1.安装路径,最好不要放到系统盘去[c:],建议非系统盘都可,尤其是早期的XAMPP版本可能默 ...

  5. PowerDesigner15.1创建模型及生成带注释sql操作手册

    转自:http://blog.csdn.net/huiwenjie168/article/details/7824029 一.创建模型 操作:file-->new Model… 快捷键:ctrl ...

  6. 南阳理工ACM Skiing问题

    描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底 ...

  7. Back to Back Order Process

    Steps involved involved in back to back order process in oracle apps 1. Enter Sales Order 2. Book Sa ...

  8. HTML5中的localStorage用法

    存储数据的方法就是直接给window.localStorage添加一个属性,例如:window.localStorage.name 或者 window.localStorage["name& ...

  9. 【Todo】Python的工作原理

    参考这篇: http://python.jobbole.com/86086/?from=timeline&isappinstalled=1&nsukey=MWQG%2B7OI4FvdQ ...

  10. UVa 1593 (水题 STL) Alignment of Code

    话说STL的I/O流用的还真不多,就着这道题熟练一下. 用了两个新函数: cout << std::setw(width[j]);    这个是设置输出宽度的,但是默认是在右侧补充空格 所 ...