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

目录
相关文章
|
3月前
|
数据采集 前端开发 JavaScript
虎扑APP数据采集:JavaScript与AJAX的结合使用
虎扑APP数据采集:JavaScript与AJAX的结合使用
|
4月前
|
JavaScript 前端开发 开发工具
【Azure Developer】使用JavaScript通过SDK进行monitor-query的client认证报错问题
AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.
|
5月前
|
移动开发 前端开发 JavaScript
js之ajax |12-6
js之ajax |12-6
|
4月前
|
JavaScript 前端开发
原生js常见报错及其处理方案
原生js常见报错及其处理方案
60 0
|
6月前
|
JavaScript 前端开发 C++
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
|
6月前
|
JavaScript 前端开发 网络协议
|
6月前
|
JavaScript
Vue——使用JS文件中的函数ESLint报错未定义
Vue——使用JS文件中的函数ESLint报错未定义
73 0
|
6月前
|
JavaScript 前端开发 安全
js之AJAX
js之AJAX
43 0
|
7月前
|
移动开发 运维 JavaScript
阿里云云效操作报错合集之遇到Node.js的内存溢出问题,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7月前
|
JavaScript Shell 应用服务中间件
阿里云云效操作报错合集之Node.js构建报错,该如何排查问题
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。

热门文章

最新文章