Script1014:对于 IE 11,用 jQuery.ajax 替换 fetch 的字符无效
Script1014: Invalid Character replacing fetch with jQuery.ajax for IE 11
我正在为旧的 javascript 组件添加 i18n 支持。它以前不需要xhr/fetch,但它仍然需要在 IE11 中工作。
我不想写:
fetch("/libs/cq/i8n/dict." + lang + ".json")
.then(function(response) { return response.json(); })
.then(function(data) {
dictionary = data;
});
但是我知道IE不支持fetch。我们有 jQuery 可用,所以我尝试了:
jQuery.ajax({
url: "/libs/cq/i18n/dict." + lang + ".json",
success: function (response) {
dictionary = JSON.parse(response);
onReady();
}
})
现在我明白了:
SCRIPT1014: Invalid Character
index.js (49,17)
我意识到 49,17
指的是文件中的位置,第 49 行,字符 17。那是 dictionary = JSON.parse(response);
中的 d
我已经测试了响应,它是严格有效的JSON。
由于某种原因 dictionary = eval(response)
正在工作。
问题是 jQuery 已经检测到它是 JSON 并为我解析了它。
Invalid Character
错误消息告诉我传递给 JSON.parse
的字符串是一个对象。
第 49 行我需要的是:
dictionary = response;
我正在为旧的 javascript 组件添加 i18n 支持。它以前不需要xhr/fetch,但它仍然需要在 IE11 中工作。
我不想写:
fetch("/libs/cq/i8n/dict." + lang + ".json")
.then(function(response) { return response.json(); })
.then(function(data) {
dictionary = data;
});
但是我知道IE不支持fetch。我们有 jQuery 可用,所以我尝试了:
jQuery.ajax({
url: "/libs/cq/i18n/dict." + lang + ".json",
success: function (response) {
dictionary = JSON.parse(response);
onReady();
}
})
现在我明白了:
SCRIPT1014: Invalid Character
index.js (49,17)
我意识到 49,17
指的是文件中的位置,第 49 行,字符 17。那是 dictionary = JSON.parse(response);
我已经测试了响应,它是严格有效的JSON。
由于某种原因 dictionary = eval(response)
正在工作。
问题是 jQuery 已经检测到它是 JSON 并为我解析了它。
Invalid Character
错误消息告诉我传递给 JSON.parse
的字符串是一个对象。
第 49 行我需要的是:
dictionary = response;