2013-11-11 2 views
0

Я пытаюсь прочитать текстовый файл с помощью ajax, но он не работает на ios: я получаю ошибку 500 (Internal Server Error) в файле proDB.txt только на iOS.ошибка ajax internal 500 на iOS

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

Не могли бы вы рассказать мне, что не так?

+0

500 является .... ошибкой сервера. Какой браузер/клиент, который вы используете, действительно не должен влиять ни на что. В любом случае, поскольку это ошибка сервера, вы должны найти ошибку в журналах вашего сервера, если включена отладка. Получение 500 ошибок в TXT-файле очень странно. –

+0

Я знаю, но у меня есть только эта ошибка с iOS. На андроиде, firefox, хром, проблем нет. – Louis

+0

Сервер: «О, этот запрос от iOS, мне лучше свернуть на этот раз»; Понимаете, это не имеет никакого смысла. – MightyPork

ответ

0

Чтобы решить эту проблему, я использую полный путь к файлу для прошивки, как это:

ошибки сервера
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) 
    ); 
} 
Смежные вопросы