我有代码片段,我从后端节点服务器通过$.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
以等待其加载
问题:
答案 0 :(得分:0)
请尝试使用POST
方法
像
$.ajax({
type: "POST",
async: true,
cache: false,