第一次调用页面加载

时间:2018-04-19 05:59:05

标签: jquery node.js ajax

我有代码片段,我从后端节点服务器通过$.ajax提取所有配置。但是当我第一次点击我的页面时,我没有得到响应,因为当我检查节点服务器上的日志时,我确实看到请求的状态为200 Ok。但我刷新页面两次或三次我得到了正确的响应。

以下是我的代码:

var appConfig = getConfig();
function setAppConfig(){
    var url = env.NEW_SERVER_URL + '/api/client/getConfig/carrier/';
    $.ajax({
        type: 'GET',
        contentType: "application/json",
        url: url,
        success: function (response) {
            //   console.log(response);
            var configData = JSON.stringify(response);
            sessionStorage.setItem('config', configData);
            return true;
        },
        error: function (error) {
            console.log("some error in connection with server");
            return false;
        }
    });
}

function getConfig(){
    var appConfig = "";
    // console.log(fetchFromSession('config'));
    if(fetchFromSession('config') !== null){
        appConfig = JSON.parse(fetchFromSession('config'));
    }else{
        if(setAppConfig()){
            appConfig = JSON.parse(fetchFromSession('config'));
        }else{
            console.log('Something went wrong in pullling the configs');
        }
    }
    return appConfig;
}

用于响应获取请求的节点服务器代码:

exports.config = ((req, res,next) => {
    let carrier = req.params.carrier;
    logger.info("getConfig started", {carrier: carrier});

     if(carrier){
          var msg = require(path.join('./../../../config/',carrier,'/config.json'));
          logger.info("Response for getScripts", {carrier: carrier, response: msg});
          res.send(msg);
     }
})

首先在页面上加载此脚本,并将所有相关脚本标记为defer以等待其加载

问题:

  • 我的代码出了什么问题?
  • 为什么它第一次不起作用,但之后会刷新页面?
  • 我需要做什么才能在首次加载时获得成功的响应?

1 个答案:

答案 0 :(得分:0)

请尝试使用POST方法

来使用此功能

$.ajax({ type: "POST", async: true, cache: false,