JS中一个方法同时发送两个ajax请求出现报错问题的解决方法

简介: JS中一个方法同时发送两个ajax请求出现报错问题的解决方法

目录

1、背景介绍

2、分析原因

3、解决办法


1、背景介绍


在实现前端显示后端数据时遇到这样一个问题:在js同一个方法中调用2个ajax,其中ajax1与ajax2之间没有联系,但是为了看效果需要同时请求数据显示,运行程序却报错,如下图ajax1是蓝色的线,路径规划;ajax2是红色的点,起止点附近的节点。

1.png

两个请求独立封装的,为了显示同时按串行请求2个ajax时,出现报错的信息如下:


1、前端页面未响应且控制台报错


已阻止跨源请求:同源策略禁止读取位于url1的远程资源。(原因:CORS请求失败)


已阻止跨源请求:同源策略禁止读取位于url2的远程资源。(原因:CORS请求失败)。


2、IDEA后台崩溃,错误信息


#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x00007f84985ce34a, pid=109590, tid=0x00007f84447d3700

#

# JRE version: Java(TM) SE Runtime Environment (8.0_221-b11) (build 1.8.0_221-b11)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.221-b11 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libc.so.6+0x7f34a]  fread+0x1a

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /home/demo/hs_err_pid109590.log

#

# If you would like to submit a bug report, please visit:

#   Crash Report

# The crash happened outside the Java Virtual Machine in native code.

# See problematic frame for where to report the bug.

#


2、分析原因


从异步请求的执行原理来看,我们知道当一个异步请求发送时,浏览器不会处于锁死、等待的状态,从一个异步请求发送到获取响应结果的期间,浏览器还可以进行其它的操作。这就意味着多个异步请求的执行是并行的。


两个ajax异步请求冲突,因为异步问题在调用两个ajax异步时,其实相当于同时发送两个请求。执行的快与慢,就要看响应的数据量的大小及后台逻辑的复杂程度。


3、解决办法


当然针对这个问题而言还有很多解决办法,这里提供三种解决方案:


(1)Ajax2()方法的执行放到Ajax1()的success回调函数的最后一行。【由于两者没有联系该方法能够达到要求,但是逻辑上不对】


(2)Ajax1()的异步请求方法中,增加一个回调函数 :complete : Ajax2。【可尝试】


(3)把Ajax1()的异步设为同步:async : false。【本人采用的解决方法,的确解决了问题】


参考:https://blog.csdn.net/qq_34059693/article/details/83413559

目录
相关文章
|
15天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
17 0
|
16天前
sd.js 2.0封装:更加简化请求传参内容(逐步废弃、逐渐日落2024.01.02)
sd.js 2.0封装:更加简化请求传参内容(逐步废弃、逐渐日落2024.01.02)
|
1月前
|
JavaScript 前端开发 Java
springboot从控制器请求至页面时js失效的解决方法
springboot从控制器请求至页面时js失效的解决方法
15 0
springboot从控制器请求至页面时js失效的解决方法
|
1月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
40 0
|
16天前
|
JavaScript 前端开发 大数据
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
|
2月前
VUE.初始化项目报错缺少core-js
VUE.初始化项目报错缺少core-js
35 0
|
1月前
|
JavaScript 前端开发
springboot+layui从控制器请求至页面时js失效的解决方法
springboot+layui从控制器请求至页面时js失效的解决方法
15 0
|
16天前
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
|
1月前
|
缓存 JavaScript 前端开发
一次js请求一般情况下有哪些地方会有缓存处理?
一次js请求一般情况下有哪些地方会有缓存处理?
18 1
|
1月前
|
数据采集 JavaScript 前端开发
利用axios库在Node.js中进行代理请求的实践
利用axios库在Node.js中进行代理请求的实践