因此,当尝试使用AXAJ访问通过localhost上的WebMatrix启动站点(或更多测试应用程序)的.json文件时,我一直得到臭名昭着的404.3错误。
是的,我知道IIS配置。我在Windows 8.1(x64)上,所以我不得不单独打开MIME类型功能。我使用.json
为application/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();
}
当我在我的服务器空间托管它时,它完全正常。但是我想让它在本地工作以进行测试。
答案 0 :(得分:0)
如果写入文件有效但提取功能不起作用。然后你应该检查文件的链接。
名称引用的错误 404 是文件名的错误。没有任何其他类型的错误,即使Ajax请求工作正常并给出错误404(找不到文件)。因此,您唯一能做的就是确保在获取数据时使用正确的链接。
这可以是一个帮助,当您通过Ajax发送请求时,您的浏览器控制台中有一个网络选项卡。打开它,查找请求。它将以红色表示错误并单击它。您会发现您提供的链接无效。
然后查找文件链接中的错误并更新它。
答案 1 :(得分:0)
我要去的长度,以清理我的个人资料......
当您需要JSON格式或任何文件时,您必须在请求中指定所需的数据类型,IIS不会做出任何假设。所以
xhr.setRequestProperty('Content-Type', 'application/json');
是一个不容错过的东西。我还设置了X-Requested-With
标题。请注意,要重现此问题,我使用的是安装在Windows 10 Pro上的IIS,因此不完全相同的系统(3年后 - 废话!)。