iOS上的ajax内部500错误

时间:2013-11-11 18:06:35

标签: jquery ajax

我正在尝试使用ajax读取文本文件,但它在ios上不起作用:我在iOS上的proDB.txt文件中出现错误500(内部服务器错误)。

var prodata=[];
ajaxreadfile();

function ajaxreadfile() {
    return $.ajax({
            url: "proDB.txt",
            type: 'GET',
            dataType: 'text',
            headers: { "cache-control": "no-cache" },
            success: function(data){
                readfile(data);
            },
            async: false
        });
}  

function readfile(data){
    var lines=data.split(/\n/);
    var i;
    prodata.push(0);
    var fieldnames=lines[0].split(/\t/);
    for (i = 1; i < lines.length-1; ++i) {
        var fields=lines[i].split(/\t/);
        prodata.push(i);            
        var j;
        prodata[i]={};
        prodata[i]['id']=i; //auto id, there is no more 'id' column in the DB file.
        for (j = 0; j < fields.length; ++j) {
            var str=fieldnames[j];
            prodata[i][str]=fields[j];  
        }
    }

    prodata.sort(SortByName);

    resetLists(prodata);

    prodata.sort(SortById);
}

你能告诉我什么是错的吗?

1 个答案:

答案 0 :(得分:0)

要解决这个问题,我使用iOS文件的完整路径,如下所示:

var request = $.ajax({
        url: dbUrl(),
        type: 'get',
        dataType: 'text',
        success: successCallback
    });

function dbUrl(){
    if(isIOS()){
        return "http://www.mysite.com/proDB.txt";
    }else{
        return "proDB.txt";
    }
}
function isIOS(){
    return (
       (navigator.userAgent.indexOf("iPhone") != -1) ||
       (navigator.userAgent.indexOf("iPod") != -1) ||
       (navigator.userAgent.indexOf("iPad") != -1)
    );
}