jquery ajax jsonp跨域调用实例代码


Posted in Javascript onDecember 11, 2013

客户端代码

<%@ 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"}])
Javascript 相关文章推荐
快速解决jquery之get缓存问题的最简单方法介绍
Dec 19 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
Oct 14 Javascript
Node.js使用Express创建Web项目详细教程
Mar 31 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
vue引入ueditor及node后台配置详解
Jan 03 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 Javascript
JavaScript将数组转换为链表的方法
Feb 16 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 #Javascript
Javascript实现返回上一页面并刷新的小例子
Dec 11 #Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 #Javascript
判断javascript的数据类型(示例代码)
Dec 11 #Javascript
利用javaScript实现点击输入框弹出窗体选择信息
Dec 11 #Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 #Javascript
jquery Tab效果和动态加载的简单实例
Dec 11 #Javascript
You might like
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Angular 表单控件示例代码
2017/06/26 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
Python创建xml的方法
2015/03/10 Python
说一说Python logging
2016/04/15 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python退出循环的方法
2020/06/18 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
优秀教师主要事迹
2014/02/01 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
环保倡议书500字
2014/05/15 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
出国导师推荐信
2015/03/25 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
Golang 并发编程 SingleFlight模式
2022/04/26 Golang