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 相关文章推荐
从Ajax到JQuery Ajax学习
Feb 14 Javascript
javascript StringBuilder类实现
Dec 22 Javascript
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
JS实现同时搜索百度和必应的方法
Jan 27 Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 Javascript
原生的强大DOM选择器querySelector介绍
Dec 21 Javascript
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 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
PHP与SQL注入攻击[一]
2007/04/17 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
基于Python对数据shape的常见操作详解
2018/12/25 Python
python学生管理系统学习笔记
2019/03/19 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
学习“七一”讲话精神体会
2014/07/08 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
保险公司演讲稿
2014/09/02 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
入党转正介绍人意见
2015/06/03 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers