Jquery AJAX总是出错

Jquery AJAX always errors

本文关键字:出错 AJAX Jquery      更新时间:2023-09-26

我正在使用nginx web服务器并在本地主机上运行网站。我希望能够获得我的文件通过服务器与jquery的AJAX函数,但它总是抛出一个错误。我在我的data文件夹中创建了一个名为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

当它试图到达data/TESTFOLDER

我当然试过比这更简单的,没有头和所有这些。但似乎什么都不起作用。如果可以,请帮忙。

编辑:

  • 是的,我可以通过在浏览器中输入localhost/data/TESTFOLDER/test.txt来访问文件。
  • . ./似乎不会引起问题,因为在这两种情况下,我得到错误信息500内部服务器错误-本地主机/data/TESTFOLDER/,即不是本地主机/../data/TESTFOLDER/
  • 服务器错误日志显示:2020#2644:重写或内部重定向循环,而内部重定向到"/data/TESTFOLDER/",客户端:127.0.0.1,服务器:localhost,请求:"GET/data/TESTFOLDER/HTTP/1.1",主机:"localhost", referrer: " http://localhost/index.html "

注意:本地主机这个词在这里是两个单独的词,因为他们不允许我发布链接。

EDIT2:我应该注意到,虽然本地主机/data/TESTFOLDER/test.txt在我的浏览器中工作正常,但本地主机/data/TESTFOLDER/抛出错误500。这种情况应该发生吗?

您的url格式不正确。如果您想在Ajax调用中使用相对路径,则不需要使用.. .

source: AJAX请求中的相对url

你可以只用url: "/data/TESTFOLDER/"。您当前的url试图访问http://localhost:63542/../Data/TESTFOLDER/,这可能不存在,但服务器试图找到它并抛出一个错误。

您可以使用ajax捕获不同的http状态代码。

的例子:

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

您滥用try_files并获得内部重定向循环

另外,文本的MIME类型为text/plain