通过ajax获取json时,Localhost返回404.3(Windows 8.1)

时间:2014-04-13 19:47:23

标签: ajax json iis windows-8.1 webmatrix

因此,当尝试使用AXAJ访问通过localhost上的WebMatrix启动站点(或更多测试应用程序)的.json文件时,我一直得到臭名昭着的404.3错误。

是的,我知道IIS配置。我在Windows 8.1(x64)上,所以我不得不单独打开MIME类型功能。我使用.jsonapplication/javascript配置了MIME类型。然后我去了*.json添加了一个处理程序,指向C:\WINDOWS\system32\inetsrv\asp.dll。我将动词设置为GET和POST(这些是我在我的ajax函数中使用的)。我也尝试取消选中"仅当请求映射到...时才调用处理程序。"无济于事。

我正在使用一个函数将数据发送到PHP文件,然后将其写入JSON文件,然后另一个函数直接从JSON文件中获取数据。通过PHP编写工作。取得没有。我完全不知所措,有没有人有任何想法?我用来获取数据的代码是你的标准ajax:

function getDate(path, callback) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
     if (httpRequest.readyState === 4) {
        if (httpRequest.status === 200) {
            var data = JSON.parse(httpRequest.responseText);
            if (callback) callback(data);
        }
     }
  };
  httpRequest.open('GET', path);
  httpRequest.send(); 
}

当我在我的服务器空间托管它时,它完全正常。但是我想让它在本地工作以进行测试。

2 个答案:

答案 0 :(得分:0)

如果写入文件有效但提取功能不起作用。然后你应该检查文件的链接。

名称引用的错误 404 是文件名的错误。没有任何其他类型的错误,即使Ajax请求工作正常并给出错误404(找不到文件)。因此,您唯一能做的就是确保在获取数据时使用正确的链接。

这可以是一个帮助,当您通过Ajax发送请求时,您的浏览器控制台中有一个网络选项卡。打开它,查找请求。它将以红色表示错误并单击它。您会发现您提供的链接无效。

然后查找文件链接中的错误并更新它。

答案 1 :(得分:0)

我要去的长度,以清理我的个人资料......

当您需要JSON格式或任何文件时,您必须在请求中指定所需的数据类型,IIS不会做出任何假设。所以

xhr.setRequestProperty('Content-Type', 'application/json');

是一个不容错过的东西。我还设置了X-Requested-With标题。请注意,要重现此问题,我使用的是安装在Windows 10 Pro上的IIS,因此不完全相同的系统(3年后 - 废话!)。