当前位置: 首页 > news >正文

ajax实现跨域请求的几种方式--前端

在工作中,在用ajax实现跨域请求时,我主要通过以下两种方式实现的:
1.$.getJSON()

$.getJSON("./data/table.json",function(data){
            console.log(data);

        });

调用Jquery的$.getJSON方法时,Jquery有自己的处理,实际上通过script的scr请求的,但要知道,数据最终还是通过url后面通过get方式发送数据出去的,这就决定了,发送的data数据量不能太多,否则造成url太长接收失败(getJSON方式是不可能有post方式递交的)。

2.通过参数xhrFields:设置withCredentials:true 进行跨域请求处理

$.ajax({
            type:'post',
            url:'user_userList.action',
            dataType:'json',
            contentType: "application/x-www-form-urlencoded; charset=utf-8",
            async:true,
            xhrFields:{
                withCredentials:true  
            },
            success:function(data){
                console.log(data);
            },
            error:function(data){
                console.log(data);
            }
        });

withCredentials:
默认情况下,跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据。如果服务器接收带凭据的请求,会用下面的HTTP头部来响应。
Access-Control-Allow-Credentials: true。
如果发送的是带凭据的请求,但服务器的相应中没有包含这个头部,那么浏览器就不会把相应交给JavaScript(于是,responseText中将是空字符串,status的值为0,而且会调用onerror()事件处理程序)。另外,服务器还可以在Preflight响应中发送这个HTTP头部,表示允许源发送带凭据的请求。
支持withCredentials属性的浏览器有Firefox 3.5+、Safari 4+和Chrome。IE10及更早版本都不支持。

相关文章:

  • css3-单位px与vw,rem的区别
  • openlayers4通过拖动滑动条设置图层颜色透明度
  • openlayers4判断一个点是否在闭合图形的内部
  • 常见电脑屏幕分辨率
  • css3更改默认滚动条样式-webkit-scrollbar
  • GIS开发-天地图按照地名搜索定位
  • css3中的伪类before和after常见用法
  • openlayers4获取一个图形的边界
  • Vue.js小例子--tab选项卡切换
  • 使用openlayers3加载png格式图片
  • openalyers为自定义覆盖物overlay添加点击事件
  • absolute和float的区别
  • float定位对内联元素和块状元素的影响
  • javascript实现拖拽弹框高度,可调节弹框大小
  • vue中的template标签
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【RocksDB】TransactionDB源码分析
  • ➹使用webpack配置多页面应用(MPA)
  • Android组件 - 收藏集 - 掘金
  • codis proxy处理流程
  • idea + plantuml 画流程图
  • Java Agent 学习笔记
  • PaddlePaddle-GitHub的正确打开姿势
  • PermissionScope Swift4 兼容问题
  • Vue2.x学习三:事件处理生命周期钩子
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 前端设计模式
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 用element的upload组件实现多图片上传和压缩
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 回归生活:清理微信公众号
  • 数据库巡检项
  • # 飞书APP集成平台-数字化落地
  • #Java第九次作业--输入输出流和文件操作
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (23)Linux的软硬连接
  • (9)目标检测_SSD的原理
  • (C语言)fread与fwrite详解
  • (转)Unity3DUnity3D在android下调试
  • (转)为C# Windows服务添加安装程序
  • .Net IOC框架入门之一 Unity
  • .NET NPOI导出Excel详解
  • .net 验证控件和javaScript的冲突问题
  • .net6 webapi log4net完整配置使用流程
  • .Net多线程总结
  • @Async注解的坑,小心
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RestController注解的使用
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • []我的函数库
  • [100天算法】-实现 strStr()(day 52)
  • [20170713] 无法访问SQL Server
  • [AIGC 大数据基础]hive浅谈