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

12 javascript ajax jquery ios ios10.3

我使用i18n插件for load*.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); 
                    }
    });
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中:

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

在此输入图像描述

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

use*_*663 0

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

用全局变量赋值或函数调用包围数据:

    window.variable = "_DATA_"; // or
    functionName("_DATA_");
Run Code Online (Sandbox Code Playgroud)

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