美文网首页
Ajax 跨域请求

Ajax 跨域请求

作者: LaH_71d7 | 来源:发表于2017-09-13 15:19 被阅读0次

如今大都要用到跨域的方法请求数据,网上的方法也是各式各样,这里我重点介绍两种不同的跨域形式。

一.跨域请求接口

主要介绍两种jquery的方式

1.$.getJSON

此方法简单粗暴,如果你对ajax还算了解,推荐使用此方法,一步搞定。

  $.getJSON("http://xxxxxxxxxxx/xxxxxxxx/xxxxxx/list?callback=?","name=zhangsan&id=10",function (json){})

这个方法jquery会自动判断是否跨域,如果跨域,则jquery会以jQuery1345xxxxxxxxxxx的形式自动填充callback,并按照需求返回数据到回调函数:(如图)

第二个部分传递的data可以按照官方格式(也就是name=xx&id=xx)来传递,也可以以json形势传递。

2.$.ajax

这个方法为什么放到第二个来说?主要是涉及到的几个参数需要与第一种方法对比解释:

$.ajax({

      url:"http://xxxxxxxxxxxxxxx",    //首先是url这里写上要跨域请求的地址

      type:"get",                                //必须是get,目前跨域只支持get方法。

      datatype:"jsonp",

      jsonp:"mycallback",    //这个jsonp是什么意思?看到第一种方法的callback没?如果你不设置jsonp,那么默认回调函数参数就是callback,但是最好别改,因为这是向服

务器发送请求的函数参数名,要和服务器端的一致~~~

      jsonpcallback:"jsonp_callback",  //这里的jsonpcallback就是回调函数名,我在第一种方法中说道过,使用getJSON时,回调函数的名字由query自动填充,如果设置了就是按照你

的名字返回。

      success:function(json){   

    //do something 

    }

})

二.跨域请求文件

有些时候我们可能需要跨域请求一些文件,那么这个时候就没有后端的童鞋给你合作,显然我们jQuery请求接口的方式不起作用了。那么这个时候就需要用到咱们jsonp跨域的的原理了。

1.jsonp本质

是通过script标签请求数据,然后返回的数据再用一个函数来包装。

2.jsonp原理

因为咱们的src是没有跨域的限制的,所以我们通过script标签跨域请求资源的原理来间接的请求数据。

Code

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Jsonp Test</title>

</head>

<body>

    <script type="text/javascript">

            function getData(data){

                console.log(data.name);

            }

    </script>

</body>

<script type="text/javascript" src="test.json"></script>

</html>

这里我们定义了一个getData的方法,来获取咱们src读取的资源,相当于请求成功的回调函数。

test.json Code

getData({"name":"pwh","sex":"23"})

这里咱们用getData把数据包装起来,齐活儿!

相关文章

  • 彻底让你明白跨域(服务器端为node)

    跨域只是针对ajax请求的。 如果产生跨域,那么将请求不到数据。 发起ajax请求所依赖的html页面的url地址...

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • Ajax跨域请求与SpringMVC结合的一些坑

    Ajax跨域的概念就不在这边陈述了... Ajax跨域请求真正的请求之前会进行一次预请求OPTIONS请求,为了让...

  • SpringMVC 进行ajax跨域请求访问

    关于 springmvc 3.x 版本对ajax跨域请求访问 ajax 请求后,浏览器出现跨域的问题那么在当前环境...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 跨域

    什么是跨域? 为什么会发生ajax跨域?浏览器限制跨域【发出的请求不是本域】XHR请求【json】 解决思路:1:...

  • AJAX、Servlet允许跨域请求

    1.AJAX 2.Servlet允许跨域请求 1.AJAX AJAX = Asynchronous JavaSc...

  • 跨域CORS

    CORS全称是跨域资源共享(Cross-Origin Resource Sharing),用来解决AJAX跨域请求...

  • 跨域实战解决方案

    一.跨域方案 1.JSONP跨域 (1)前端发起jQuery ajax 的get请求 $.getJSON...

  • [JavaScript] jsonp

    由于同源策略的限制,ajax不能发送跨域请求。即,www.google.com域内的js,无法用ajax请求不是w...

网友评论

      本文标题:Ajax 跨域请求

      本文链接:https://www.haomeiwen.com/subject/cptlsxtx.html