1、Get方式请求--使用jsonp

什么是jsonp格式呢?如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。

客户端JS:

  var xhrurl = 'http://localhost:8001/Ajax/ticketNotify.ashx?cu=kefu1';
  $.ajax({
          type : "get",
          async : false,
          url :xhrurl,
          cache : false,
          dataType : "jsonp",
          jsonp: "callbackparam",
          jsonpCallback:"jsonpCallback1",
          success : function(json){
             alert(json[0].name);
          },
          error:function(e){
             alert("error");
         }
       });

服务端代码:

             String callbackFunName = context.Request["callbackparam"];
             context.Response.Write(callbackFunName + "([ { \"name\":\"John\"}])");

注意:客户端的jsonp参数是用来通过url传参,传递jsonpCallback参数的参数名,比较拗口,通俗点讲:

jsonp: "callbackparam"
jsonpCallback:"jsonpCallback1"
这两个参数最终会拼接在请求的url后面,变成 http://www.xxx.com/ajax/xxx.ashx?callbackparam=jsonCallback1
服务端要获取这个参数值:"jsonCallback1"  ,拼接在要输出的JSON数据最前面。
 
2、Post方式请求--使用CORS
   CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。
   CORS浏览器支持情况如下图:
   
   
 
  假设我们页面或者应用已在 http://www.test1.com 上了,而我们打算从 http://www.test2.com 请求提取数据。一般情况下,如果我们直接使用 AJAX 来请求将会失败,浏览器也会返回“源不匹配”的错误,“跨域”也就以此由来。
  利用 CORS,http://www.test2.com 只需添加一个标头,就可以允许来自 http://www.test1.com 的请求,设置,“*”号表示允许任何域向我们的服务端提交请求
  也可以设置指定的域名,如域名 http://www.test2.com ,那么就允许来自这个域名的请求:    
        
  当前我设置的header为“*”,任意一个请求过来之后服务端我们都可以进行处理&响应,那么在调试工具中可以看到其头信息设置,其中见红框中有一项信息是“Access-Control-Allow-Origin: *"表示我们已经启用CORS,如下图。   
 
   简单的一个header设置,一个支持跨域POST请求的server就完成了

Ajax实现跨域请求相关推荐

  1. jfinal里使用ajax,Jfinal解决AJAX的跨域请求

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful. 一开始使用AJAX来传输json数据时, ...

  2. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)

    利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...

  3. ajax+php跨域请求数据库,基于jQuery的ajax跨域请求,PHP作为服务器端代码

    ajax实现跨域请求有两种方式: 方法一:jsonp的方式 jsonp方式的关键点在客户请求以jsonp作为数据类型,服务器端接收jsonp的回调函数,并通过回调函数进行数据的传输.具体代码如下: 客 ...

  4. ajax 跨域请求数据,JQuery Ajax执行跨域请求数据的解决方案

    JQuery Ajax执行跨域请求数据的解决方案 今天前端因为需要ajax调用两个不同的项目,请求域不一样,所以涉及ajax跨域的问题 ,其实很简单,具体如下 原来的ajax请求如下: $.ajax( ...

  5. jq中ajax请求跨域,jquery+ajax实现跨域请求的方法

    本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为  "jsonp"  :type 只能为 GET ...

  6. ajax是如何实现跨域的,在JS中如何实现ajax与ajax的跨域请求

    下面小编就为大家分享一篇原生JS实现ajax与ajax的跨域请求实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 一.原生JS实现ajax 第一步获得XMLHttpRequest对 ...

  7. Java Ajax jsonp 跨域请求

    2019独角兽企业重金招聘Python工程师标准>>> 1. 什么是JSONP 一般来说位于 server1.example.com 的网页无法与不是 server1.example ...

  8. Ajax(跨域请求)

    JSONP 跨域请求 CORS 跨域请求 proxy代理请求 1.什么是跨域 首先,现代浏览器为了安全,做了一个同源限制. 也就是所谓的同源安全策略. 本质上,其实是不存在所谓的跨不跨域的. 把浏览器 ...

  9. [油猴脚本开发指南]脚本ajax的跨域请求

    转载自油猴中文网:bbs.tampermonkey.net.cn 李恒道QQ4548212 油猴中文网bbs.tampermonkey.net.cn TamperMonkey GreaseMonkey ...

最新文章

  1. 黄金矿工-收益最大化
  2. selenium借助AutoIt识别上传(下载)详解
  3. .NET CF WM上创建快捷方式
  4. mysql 2006测试_狂神说MySQL06:事务和索引
  5. 什么是软件测试架构师?
  6. Fabric--使用多通道
  7. C语言中单目运算符的结合方向是,C语言运算符的结合性
  8. 2020-08-29
  9. Linux动态频率调节系统CPUFreq
  10. HTTPS和TCP的关系
  11. python渲染html 库_在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
  12. elk收集分析nginx access日志
  13. MATLAB rolcus函数,利用Matlab绘制系统的根轨迹.doc
  14. 弥合银行业的数字鸿沟
  15. Buck_Boost电路分析 亲测
  16. 【数据库CS751】数据库的建表与插入
  17. 亦舒的话,我的感触...
  18. 工业机器人码垛教学实施_《工业机器人码垛工作站安装与调试》教学设计文本.doc...
  19. 求职 | Python、数据分析、Java
  20. IPv6网络的可操作安全考虑——RFC9099解析(一)

热门文章

  1. Windows下使用pip时出现TSL/SSL错误解决方案
  2. 天翼云linux版本,天翼云Linux主机操作
  3. 农牧行业销售经理生存手册(一)
  4. Introduction to Python(2)
  5. 纯JS判断iPhone准确机型,iPhone6~iPhoneXs Max
  6. Ubuntu9.04配置命令宝典
  7. Delphi导出word
  8. 前端安全跨站脚本攻击
  9. fpc软性线路板生产工艺
  10. Android 推送-个推