Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ajax获取文件不';我不能在iOS上工作_Jquery_Ajax_Database - Fatal编程技术网

Jquery ajax获取文件不';我不能在iOS上工作

Jquery ajax获取文件不';我不能在iOS上工作,jquery,ajax,database,Jquery,Ajax,Database,我正在开发一个webapp,我试图读取一个包含数据的文件。目前,数据文件与webapp位于同一服务器上,但我计划将webapp部署到其他服务器和移动设备(通过phonegap),同时将数据文件保存在服务器上并安全读取。因此,我正在寻找一种在所有这些情况下都有效的解决方案。 我已经测试了这段代码,只是将webapp与数据文件放在同一台服务器上,但它不适用于iPad(iOS)上的webbrowser,选项为空。你知道为什么吗 多谢各位 var request = $.ajax({

我正在开发一个webapp,我试图读取一个包含数据的文件。目前,数据文件与webapp位于同一服务器上,但我计划将webapp部署到其他服务器和移动设备(通过phonegap),同时将数据文件保存在服务器上并安全读取。因此,我正在寻找一种在所有这些情况下都有效的解决方案。 我已经测试了这段代码,只是将webapp与数据文件放在同一台服务器上,但它不适用于iPad(iOS)上的webbrowser,选项为空。你知道为什么吗

多谢各位

    var request = $.ajax({
            url: dbUrl(),
            type: 'get',
            dataType: 'text',
            beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + btoa("mylogin" + ":" + "mypassword")); },
            success: successCallback
        });

    function dbUrl(){
            return "http://www.mywebsite.fr/webapp/DB.txt";
    }

    function successCallback(data){
        //here I populate "select options".
    }

第一件事是第一件事,尝试:

数据类型:“jsonp”

如果这在其他手机(浏览器)上有效,而在iPhone上无效,请尝试对URL进行UTF8编码。我在Android上运行的苹果设备上遇到了一些QR码问题。如果URL不是utf8编码的,那么FB应用程序也有同样的问题

如果您使用的是PHP,那么可以使用utf8encode()函数

如果这不是你的问题(英语不是我的母语,所以如果我弄错了,我道歉):也许你在从本地服务器移动时遇到跨域请求的问题?如果您像上面那样使用JSONP(记住小写),理论上它应该可以工作

也可以在标题中列出域的白名单:

访问控制允许来源:

然后是来自JQuery的JSONP解决方案:-)

其他资源:

这是一个跨域问题,这要感谢@Olavxxx建议使用Jsonp选项。我在此详述:

var request = $.ajax({
            url: dbUrl(),
            jsonpCallback: "callback",
            dataType: 'jsonp',
            success: successCallback,
        });

function dbUrl(){
    return encode_utf8("http://www.mywebsite.fr/webapp/DB.jsonp");
}

function successCallback(data){
    //here I populate "select options".
}
jsonp文件如下所示:

callback([
    ["field1","field2"],
    ["DH","Sweet"],
    ["DH2","Switch]
]);

感谢@Olavxxx,如果我将数据类型更改为jsonp
datatype:'jsonp'
它在使用“text”时不起作用。我的文件是一个文本文件,以制表符分隔,但如果需要,我可以对此进行更改,只需告诉我如何更改,我的文件只是一个表格,第一列的标题是:Name\tab property1\tab property2。。。下一个是无名氏,红头发,胡子,……好的,谢谢你,你让我走上了正确的道路。但是,我花了很多时间来思考如何正确地编写jsonp请求和文件。