Ajax “输入不是有效的Base-64字符串”错误
以下ajax调用因此消息而失败:输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非空白字符Ajax “输入不是有效的Base-64字符串”错误,ajax,asp.net-mvc,http,Ajax,Asp.net Mvc,Http,以下ajax调用因此消息而失败:输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非空白字符 getData: function (url, callback, errorCallback) { $.ajax({ url: ServiceHelper.GetCombinedURL(url), dataType: 'json', cache: false, async: fal
getData: function (url, callback, errorCallback) {
$.ajax({
url: ServiceHelper.GetCombinedURL(url),
dataType: 'json',
cache: false,
async: false,
success: function (data) {
if (data.ResponseType != 'SUCCESS') {
viewModels.Main.busyMessage(undefined);
viewModels.Main.message(data.Message);
if (errorCallback != null) errorCallback();
} else {
if (callback != null) callback(data);
}
},
error: function (xhr, e, s) {
if (xhr.readyState != 4)
return;
viewModels.Main.busyMessage(undefined);
viewModels.Main.message('Error occured. Please contact administrator for assistance.');
if (errorCallback != null) errorCallback();
}
});
},
这是ajax调用的url:
http://localhost/TMO.SA.GenTrac.Web/Services?redirectURL=devwsnweb001/services/GenTracService/REST/GeneratorDetail/Ref/GeneratorStatus
这在一周前奏效了。我度假回来,突然间这一切发生了。上述代码均未更改。顺便说一下,调用success函数。什么原因会导致这种情况?您发布的代码似乎与Base64解码无关,因此您的错误可能来自其他地方。堆栈跟踪将告诉您发生错误的确切行和文件,假设这是一个JavaScript错误,并且错误消息不是服务器返回的内容。查看服务器返回的实际响应对您也有指导意义。我们不知道您的服务器上正在运行什么,但完全有可能它正在生成错误消息,但仍然提供2xx成功响应。错误消息来自服务器。这正是尝试解码格式错误的base64字符串时.NET异常发出的消息。因此,服务器在响应数据请求时,可能在尝试解码该数据时失败了?而且,如果我直接从浏览器调用url,我会得到:填充无效,无法删除