gpt4 book ai didi

javascript - cordova ios xmlhttprequest 似乎缓存响应

转载 作者:行者123 更新时间:2023-11-28 08:15:02 24 4
gpt4 key购买 nike

我有一个 cordova ios 应用程序正在使用 XMLHTTPRequest 进行调用。情况是,我第一次使用正确的用户名/密码登录,应用程序按预期工作。注销后会执行一些操作,我明确尝试使用错误的用户名/密码登录。似乎它仍在让我登录。我什至已经提醒了服务器的响应,它正在返回之前的响应。

我已经准备好了与我当前情况类似的其他线程,但是,我添加了这样的行:

“缓存控制:无缓存”“缓存控制:最大年龄=0”“编译指示:无缓存”

但是没有一个起作用。任何信息都会有帮助。谢谢。

最佳答案

这是一个已使用多次的解决方案,尽管它依赖于 jQuery:

var api = {
connection: {
baseUrl: '',
apiUrl: ''
},
initialize: function() {
api.setupAjaxDefaults();
},
setupAjaxDefaults: function() {
var headers = {
'Accept': "application/json; encoding='utf-8'",
'Content-Type': "application/json; encoding='utf-8'"
};
$.ajaxSetup({
headers: headers,
dataType: 'json',
crossDomain: true
});
},
ajaxPost: function(methodName, data, successCallback, errorCallback) {
$.ajax({
url: api.connection.baseUrl + api.connection.apiUrl + methodName,
data: data,
type: 'POST',
success: function(result, status, xhr) {
if ($.isFunction(successCallback)) {
successCallback(result);
}
},
error: function(jqXHR, textStatus, errorThrown) {
if ($.isFunction(errorCallback)) {
errorCallback();
}
else {
api.defaultErrorCallback(textStatus);
}
}
});
},
ajaxGet: function(methodName, data, successCallback, errorCallback) {
$.ajax({
url: api.connection.baseUrl + api.connection.apiUrl + methodName,
data: data,
cache: false,
type: 'GET',
success: function(result, status, xhr) {
if ($.isFunction(successCallback)) {
successCallback(result);
}
},
error: function(jqXHR, textStatus, errorThrown) {
if ($.isFunction(errorCallback)) {
errorCallback();
}
else {
api.defaultErrorCallback(textStatus);
}
}
});
},
ajaxGetCached: function(methodName, data, successCallback, errorCallback) {
$.ajax({
url: api.connection.baseUrl + api.connection.apiUrl + methodName,
data: data,
type: 'GET',
success: function(result, status, xhr) {
if ($.isFunction(successCallback)) {
successCallback(result);
}
},
error: function(jqXHR, textStatus, errorThrown) {
if ($.isFunction(errorCallback)) {
errorCallback();
}
else {
api.defaultErrorCallback(textStatus);
}
}
});
},
defaultErrorCallback: function(errorMsg) {
//alert('an api error occurred: ' + errorMsg);
}
};

首先填写connection对象。 baseUrlhttp(s)://mydomain.tdlapiUrl 用于版本控制或分段 API,如果不需要,请将其设置为 / 否则使用 /myApiv1/

如果您需要 BaiscAuth,请将 username: someuserpassword: plaintextpassword 添加到方法中的 ajaxSetup 对象setupAjaxDefaults

一旦您的应用程序触发 deviceready 事件,调用 api.initialize();

然后要发出未缓存的请求,请使用:

api.ajaxGet('someEndpoint', { some: param, someother: data }, aSuccessCallbackFn, optionalFailureCallbackFn);

关于javascript - cordova ios xmlhttprequest 似乎缓存响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com