Ajax中的Cross Origin不适用于IOS中的.properties文件(10.3.1)

时间:2017-06-23 09:33:34

标签: javascript jquery ios ajax ios10.3

我使用 i18n 插件来加载* .properties文件进行翻译,并且在Android平台上工作正常,但是同一个库不能在IOS 10.3.1上运行。它给了我以下错误:

enter image description here

我在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); 
                    }
    });
}

在上面的代码中:

我已经添加了Cross Domain'true'和数据类型'text'..当我将数据类型'text'更改为'jsonp'时它正在工作,但它给出了.properties文件错误。 请检查以下错误..

enter image description here

这意味着。文件已加载,但内部数据格式不同。

1 个答案:

答案 0 :(得分:0)

如果您现在使用的是JSONP而不是文本,则该文件将作为javascript代码加载,因此如果内容不是有效的javascript代码,则会失败。

使用全局变量赋值或函数调用环绕数据:

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

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