鍍金池/ 問答/Java  HTML/ jquery發(fā)送兩個異步ajax請求不同的接口,返回的數(shù)據(jù)交叉錯亂

jquery發(fā)送兩個異步ajax請求不同的接口,返回的數(shù)據(jù)交叉錯亂

問題:在頁面加載后,發(fā)送兩個$.ajax()請求A、B兩個接口,都能請求到數(shù)據(jù),但是A接口的返回結果偶爾會出現(xiàn)在B中,這可能是什么原因導致的?
現(xiàn)在解決方案有兩種,一是把第二個ajax嵌套在第一個的success中。二是用.done()方法處理。
主要想研究一下出現(xiàn)問題的原因,看看前后端如何優(yōu)化。


圖一
圖片描述


圖二
圖片描述

$(function() {
    $.ajax({
        type: 'post',
        url: baseUrl + '/nodeGroup/queryNodeGroupList',
        contentType: "application/json",
        data: JSON.stringify({}),
        dataType: 'json',
        success: function (res) {
            console.log(res)
        }
    });

    $.ajax({
        type: 'post',
        url: baseUrl + '/collectStrategy/isNameAvailable',
        contentType: "application/json",
        data: JSON.stringify({
            name: '策略一',
            mhid: '6b87a0e444654be0b9ace60a6ef3a6fd'
        }),
        dataType: 'json',
        success: function (res) {
            console.log(res)
        }
    });
回答
編輯回答
薄荷綠

用Promise試試

2017年12月15日 19:11
編輯回答
風清揚

解決了,查的后臺java代碼,
在response類里邊用的是
single.data = null
return single.data

改成了return new Response()

2018年3月6日 14:52
編輯回答
短嘆

需要和接口提供者確定:
1 /nodeGroup/queryNodeGroupList/collectStrategy/isNameAvailable
有沒有調用順序上的要求,
2 /nodeGroup/queryNodeGroupList的調用是否對/collectStrategy/isNameAvailable的調用結果有影響

如果都是有影響的,那么要么調整后臺的服務接口,要么調整前臺的調用邏輯

2018年1月30日 17:27