2014-07-09 3 views
0

나는 localhost에서 웹 서버를 실행하고 웹 사이트를 사용하고 있습니다. jquery의 AJAX 함수를 사용하여 서버를 통해 파일을 가져올 수 있기를 원하지만 항상 오류가 발생합니다. 나는 'data'폴더 안에 TESTFOLDER라는 폴더를 만들었고 test.txt라는 txt 파일을 가지고있다.Jquery AJAX 항상 오류

이 내 자바 스크립트 코드

$.ajax({ 
    url: "../data/TESTFOLDER/", 
    type: 'GET', 
    dataType: "txt", 
    headers: { 
    Accept : "text/html", 
    "Content-Type": "text/html" 
    }, 
    success: function(data){ 
    console.log('there was a success'); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     console.log('there was an error'); 
    } 
}); 

이 폴더 내 nginx를 구성 블록

location /data/TESTFOLDER/ { 
     autoindex on; 
     try_files $uri $uri; 
     add_header Content-Type application/txt; 
    } 
난 항상이 오류 얻을

: 그것은 도달 할 때

NetworkError: 500 Internal Server Error 

을 데이터/시험판

물론 헤더와 그 모든 것들을 제외하고는 이것보다 더 간단하게 시도했습니다. 아무것도 작동하지 않는 것 같습니다. 가능한 경우 도와주세요.

편집 :

  • 예, 브라우저에서 로컬 호스트/데이터/TESTFOLDER/TEST.TXT을 입력하여 파일을 얻을 수 있습니다.
  • 두 경우 모두 오류 메시지 500 내부 서버 오류 - 로컬 호스트/데이터/TESTFOLDER /, 즉 로컬 호스트가 아니기 때문에 ../이 문제를 일으키지 않는 것 같습니다. /../ data/TESTFOLDER/
  • 서버 오류 로그의 내용 : 2020 # 2644 : 내부적으로 "/ data/TESTFOLDER /", 클라이언트 : 127.0.0.1, 서버 : localhost, 요청 : "GET/data/TESTFOLDER/HTTP"로 리디렉션되는 동안 재 지정 또는 내부 리디렉션주기. /1.1 ", host :"localhost ", referrer :"http : // localhost/index.html "

참고 : 로컬 호스트라는 단어는 내가 게시를 허용하지 않기 때문에 여기에 두 개의 단어로 나뉘어 있습니다 모래밭.

EDIT2 : 로컬 호스트/데이터/TESTFOLDER/test.txt는 브라우저에서 정상적으로 작동하지만 로컬 호스트/데이터/TESTFOLDER /는 오류 500을 발생시킵니다.

+3

서버 로그를 살펴보면 왜 500 오류가 발생했는지 알 수 있습니다. – panther

+0

예, 오류 500은 서버 코드가 알려지지 않은 예외로 발생했음을 의미합니다. 즉, 자바 스크립트와 아무런 관련이 없음을 의미합니다. – user1835565

+0

jqXHR, textStatus 또는 errorThrown이 더 자세한 정보를 제공합니까? –

답변

0

귀하의 URL이 잘못되었습니다. Ajax 호출에서 상대 경로를 사용하려면 ..을 사용할 필요가 없습니다.

소스 : Relative URLs in AJAX requests

당신은 url: "/data/TESTFOLDER/"를 사용할 수 있습니다. 현재 URL이 존재하지 않는 http://localhost:63542/../Data/TESTFOLDER/에 액세스하려고 시도하지만 서버가 서버를 찾으려고 시도하고 오류가 발생합니다.

0

아약스로 다른 http- 상태 코드를 잡을 수 있습니다.

예 :

$.ajax({ 
    statusCode: { 
    500: function() { 
     // do something 
    } 
    } 
}); 
0

당신은 try_files 오용 및 내부 리디렉션 루프를 얻을.

또한 MIME 유형은 text/plain입니다.

+0

네, 맞습니다. 이제 고쳐서 이제 500 서버 오류가 발생하지 않습니다. 그는 로컬 호스트/데이터/TESTFOLDER/잘하지만 여전히 아약스 오류가 나타납니다 것? – user3820230