jquery AJAX 中的交叉起源不适用于IOS中的.properties文件(10.3.1)

cigdeys3  于 2023-01-25  发布在  jQuery
关注(0)|答案(2)|浏览(106)

我使用**i18n**插件加载 *.properties文件进行翻译,它在Android平台上运行良好,但在IOS 10.3.1上不运行相同的库。它给我以下错误:

我已经在i18n库中做了一些更改,但仍然不起作用。

function loadAndParseFile(filename, settings) {
    $.ajax({
        url: filename,
        async: false,
        cache: settings.cache,
        crossDomain: true,
        jsonpCallback: 'callback',
        contentType: 'text/plain;charset=' + settings.encoding,
        dataType: 'text',
        success: function (data, status) {
            parseData(data, settings.mode);
        }
    });
}

在上述代码中:
我已添加了跨域“true”和数据类型“text”。当我将数据类型“text”更改为“jsonp”时,它可以正常工作,但会给出.properties文件错误。请检查以下错误。

这意味着加载了. file,但内部数据格式不同。

ghg1uchk

ghg1uchk1#

如果您现在使用JSONP而不是文本,则文件将作为javascript代码加载,因此如果内容不是有效的javascript代码,则加载将失败。
用全局变量赋值或函数调用包围数据:

window.variable = "_DATA_"; // or
    functionName("_DATA_");

如果_DATA_是JSON格式,那么您不需要用引号括起来,否则您需要使用“DATA”,因为没有引号,它将不是有效的javascript语法。

6jygbczu

6jygbczu2#

添加此行到你的 AJAX 参数

xhrFields: {
    withCredentials: true
}

相关问题