【发布时间】:2014-07-09 21:09:20
【问题描述】:
我正在使用 nginx 网络服务器并在 localhost 上运行一个网站。我希望能够使用 jquery 的 AJAX 函数通过服务器获取我的文件,但它总是会引发错误。我在我的“数据”文件夹中创建了一个名为 TESTFOLDER 的文件夹,它有一个名为 test.txt 的 txt 文件。
这是我的 JavaScript 代码
$.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时
我当然试过比这更简单,没有标题和所有这些。但似乎没有任何效果。如果可以的话,请帮忙。
编辑:
- 是的,我可以通过在浏览器中输入 local host/data/TESTFOLDER/test.txt 来访问该文件。
- ../ 似乎没有引起问题,因为在这两种情况下,我都会收到错误消息 500 Internal Server Error - local host/data/TESTFOLDER/,即不是本地主机/../data/TESTFOLDER/
- 服务器错误日志显示:2020#2644:重写或内部重定向周期,同时内部重定向到“/data/TESTFOLDER/”,客户端:127.0.0.1,服务器:localhost,请求:“GET /data/TESTFOLDER/ HTTP /1.1”,主机:“localhost”,引用者:“http://localhost/index.html”
注意:本地主机一词在这里是两个单独的词,因为它们不允许我发布链接。
EDIT2:我应该注意,虽然本地主机/数据/TESTFOLDER/test.txt 在我的浏览器中工作正常,但本地主机/数据/TESTFOLDER/ 会抛出错误 500。这应该发生吗?
【问题讨论】:
-
查看服务器日志,为什么会出现 500 错误。
-
是的,错误 500 表示您的服务器代码出现未捕获的异常,这意味着它与 javascript 无关。
-
jqXHR、textStatus 或 errorThrown 是否提供了更多详细信息?
-
您应该尝试在没有 Ajax 调用的情况下获取文件。 AKA 直接在浏览器中输入路径。
-
你能用你的浏览器访问那个路径吗?为什么你对 jQuery 的 url 和 nginx 位置块使用不同的路径?两者都应该以 /data 开头
标签: javascript jquery ajax nginx