目录

一、Ajax

二、跨域


一、Ajax

$.ajax({url:"服务器端接口地址",type:"get或post", //请求类型data:{  //如果没有参数,可省略参数名: 参数值,... : ...},dataType:"json", //自动调用JSON.parse()将服务器端返回的json字符串转化为内存中直接可用的数组或对象//若服务器端返回的不是json字符串,则可以省略success:function(result){ //回调函数,请求响应成功后自动触发,形参result自动接住已经编译后的响应结果对象//因为ajax是异步的,所以希望在请求成功后才能执行的代码必须写在success内部}
})

举例:使用ajax请求云服务器接口中的数据;

<script>//查询5号商品的详细信息$.ajax({url: "http://xzserver.applinzi.com/details",type: "get",data: {lid: 5},dataType: "json",success: function (result) {console.log(result)}})//登录验证$.ajax({url: "http://xzserver.applinzi.com/users/signin",type: "post",data: {uname: "dingding",upwd: "123456"},dataType: "json",success: function (result) {console.log(result);}})</script>

二、跨域

一个域名下网站中的网页,去请求另一个域名下网站中的资源,就是跨域。

1. 可以跨域的元素或程序

<link rel="stylesheet" href="别的网站的css文件"><script src="别的网站的js文件"><img src="别的网站的图片"><a href="别的网站的页面"><iframe  src="别的网站的片段">$.ajax({ url:"别的网站的接口地址" })

2. 跨域包括

(1)域名不同:www.a.com下的网页-->www.b.com

(2)子级域名不同:oa.baidu.cn下的网页-->hr.baidu.cn

(3)端口不同:http://localhost:5500下的网页-->http://localhost:3000

(4)协议不同:http://12306.cn下的网页-->https://12306.cn

(5)即使同一台主机,自己的域名与自己的IP地址之间也算跨域:http://localhost:3000下的网页-->http://127.0.0.1:3000

3. 使用ajax发送跨域请求

使用 ajax 发送跨域请求时会报错,如下图:

<script>//向服务器端发送ajax请求,获取天气预报$.ajax({url: "http://127.0.0.1:3000",success: function (result) {console.log(result);}})</script>

这是因为浏览器中都有一个 CORS 策略/同源策略(Cross Origin Resources Sharing):浏览器默认只允许当前网页中的 Ajax 请求使用自己网站的资源,不允许 ajax 请求使用其他域名返回的数据。

具体方法是:浏览器自动检查每个响应回来的结果数据的来源地址,用数据的来源地址与当前网页所在的地址比较,如果发现来源地址与网页所在的地址不一致,则禁止网页使用其他来源的数据。

4. 解决跨域问题

CORS 方式,请服务器端篡改数据的来源地址,强行与客户端地址保持一致,骗过浏览器的 cors 策略,使得 cors 策略允许数据进入程序使用。格式如下:

//node.js中
res.writeHead(200,{ //先写请求头部... : ...,"Access-Control-Allow-Origin":"客户端网页所在地址"});
res.write(JSON.stringify(响应结果)) //再写响应结果
res.end(); //发送

在以上例子中,只需在服务器端添加一句话即可,

再次使用 ajax 发送跨域请求,结果如下:

5. 前后端分离

在开发中前端一个项目,后端一个项目,前后端项目独立运行,这样可以避免互相影响。在后端中可以通过中间件来解决重复写接口的问题:

a. 安装 npm i -save cors

b. 在 nodejs express 项目的 app.js 中:

var cors=require("cors"); //引入cors中间件
var app=express();
app.use(cors({origin:[ "http://127.0.0.1:5500", "其它允许跨域的客户端地址",... ]
}))

JavaScript jQuery 终。

jQuery(五)Ajax、跨域相关推荐

  1. PHP+JQuery实现ajax跨域

    jQuery实现ajax跨域 1.dataType:'jsonp' 2.type: 'get' 3.把要传的参数以url方式传出去  url:'http://gameapi.feiliu.com/lq ...

  2. jQuery使用ajax跨域请求获取数据

    jQuery使用ajax跨域请求获取数据 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内 ...

  3. JQuery实现ajax跨域

    AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器 ...

  4. JQuery的Ajax跨域请求的解决方案

    JQuery的Ajax跨域请求的解决方案 参考文章: (1)JQuery的Ajax跨域请求的解决方案 (2)https://www.cnblogs.com/amylis_chen/p/4703735. ...

  5. jQuery实现ajax跨域请求

    jQuery实现ajax跨域请求 jsonp形式 <!DOCTYPE html> <html lang="en"><head><meta ...

  6. JQuery实现Ajax跨域访问--Jsonp原理

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...

  7. 使用JSONP,jQuery的ajax跨域获取json数据

    网上找了很多资料,写的不错,推荐下: 1.深入浅出JSONP--解决ajax跨域问题 (http://www.cnblogs.com/chopper/archive/2012/03/24/240394 ...

  8. jQuery中ajax跨域请求

    背景介绍: 现在做的课题要实现在一个没有部署在服务器上的网页中,使用ajax来加载已经 部署在服务器上的一个服务提供的数据. 先看静态页面的代码: <html><head>&l ...

  9. 快递物流查询接口API,使用Jquery的ajax跨域实现根据单号查询物流跟踪的详细信息

    应用场景:物流跟踪信息查询 1. 本接口采用的是聚合数据接口:https://www.juhe.cn/docs/api/id/43 2. 首先,注册账号申请快递单号接口:获取申请的key 3. 接口所 ...

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

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

最新文章

  1. 3ds max 多个物体合并
  2. 只能在执行 Render() 的过程中调用 RegisterForEventValidation
  3. Oracle函数列表速查
  4. 深入探讨this指针
  5. Specified VM install not found: type Standard VM, name jdk1.7
  6. ML大杂烩:**常见机器学习算法公式梳理
  7. 盘点优秀程序员的六大特征
  8. python 代码转程序_精悍的Python代码段-转
  9. Visual Studio 2008带来了什么
  10. Eureka缓存机制
  11. STM32 RCC时钟配置
  12. uvc能支持多大分辨率_微信发送的视频不能大于25M?原来改个后缀就能发送,涨知识了...
  13. push推送服务设计
  14. BZOJ2820:YY的GCD
  15. Android技术精髓-Bitmap详解
  16. 子过程或函数未定义_Power Pivotamp;Power BI DAX函数说明速查
  17. 七大江河水系--长江(二)
  18. Linkedin领英如何批量撤回邀请
  19. 我学会了用计算机作文,我学会了电脑作文
  20. qs美国排名计算机专业,2016年QS美国大学计算机科学专业排名

热门文章

  1. [附源码]JAVA毕业设计小王防疫副食品配送商城(系统+LW)
  2. 更新生产任务单工时和BOM描述
  3. 《静儿的服务治理私房菜》服务治理概述
  4. Tensor unsqueeze 以 broadcast
  5. 青山不改,绿水长流,再见了, B站。
  6. hive insert values 方式
  7. (转载)R语言ARIMA时间序利
  8. Java日志框架SLF4J和log4j以及logback的联系和区别
  9. Docker 学习笔记 ing
  10. c-ares 一个C语言的异步DNS解析库