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