js跨域请求的三种方法_jQuery

js跨域请求的三种方法_jQueryJavaScriptjQuery:Ajax、跨域。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

目录

一、Ajax

二、跨域


一、Ajax

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

Jetbrains全家桶1年46,售后保障稳定

举例:使用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>

js跨域请求的三种方法_jQuery

        这是因为浏览器中都有一个 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(); //发送

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

js跨域请求的三种方法_jQuery

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

js跨域请求的三种方法_jQuery

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 终。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227293.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月20日 下午4:43
下一篇 2025年6月20日 下午5:15


相关推荐

  • 初探SSDT

    初探SSDTSSDT 的全称是 SystemServic 系统服务描述符表 这个表就是一个把 Ring3 的 Win32API 和 Ring0 的内核 API 联系起来 SSDT 并不仅仅只包含一个庞大的地址索引表 它还包含着一些其它有用的信息 诸如地址索引的基地址 服务函数个数等 通过修改此表的函数地址可以对常用 Windows 函数及 API 进行 Hook 从而实现对一些关心的系统动作进行过滤 监控的目的 一些 HIPS 防毒软件 系统监控 注册表监控软件往往会采用此接

    2026年3月19日
    2
  • nvaicat15激活码【中文破解版】

    (nvaicat15激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0YQJ1128OW-eyJsaWNlbnNlSWQi…

    2022年3月27日
    89
  • 施密特触发器常用于脉冲整形与变换(高频方波转正弦波电路)

    大家好,又见面了,我是你们的朋友全栈君。

    2022年4月18日
    69
  • 家谱树 x

    家谱树 x家谱树 问题描述 有个人的家族很大 辈分关系很混乱 请你帮整理一下这种关系 给出每个人的孩子的信息 输出一个序列 使得每个人的后辈都比那个人后列出 输入格式 第 1 行一个整数 N 1 lt N lt 100 表示家族的人数 接下来 N 行 第 I 行描述第 I 个人的儿子 每行最后是 0 表示描述完毕 输出格式

    2026年3月17日
    2
  • 通用计算机指令,计算机移位指令[通俗易懂]

    通用计算机指令,计算机移位指令[通俗易懂]移位指令移位指令对操作数按某种方式左移或右移,移位位数可以由立即数直接给出,或由CL间接给出。移位指令分一般移位指令和循环移位指令。1一般移位指令(1)算术/逻辑左移指令。格式:SALDEST,OPRDSHLDEST,OPRD功能:按照操作数OPRD规定的移位位数,对目的操作数进行左移操作,最高位移入CF中。每移动一位,右边补一位0。如图312(a)所示。目的操作数可以为通用寄存器或存储…

    2022年4月29日
    70
  • Java学习路线从入门到入土

    Java学习路线从入门到入土Java 学习路线从入门到入土简介一门永不过时的编程语言 Java 编程开发 Java 编程语言占比 据官方数据统计 在全球编程语言工程师的数量上 Java 编程语言以 900 万的程序员数量位居首位 而且很多软件的开发都离不开 Java 编程 因此其程序员的数量最多 而在以 Java 编程为核心的开发领域中 javaEE 程序员的需求量 10 年来一直居于首位 Java 工程师人才缺口 根据 IDC 的统计数字 就 2017 年来说 我国 Java 人才的缺口已达 42 5 万 并且以每年 20 左右的速度增长 在未来 5 年内 合格软件人才

    2025年12月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号