我有一个react.js设置,并且我有一些使用react-router的简单路由。我有一个调度员:
import dispatcher from "../dispatcher";
export function reloadList(){
dispatcher.dispatch({type: "FETCH_LIST"});
let serverRequest = $.get("../../data/list.json",
function(data){
console.log(data); //Logs correct data from list.json
}
);
}
export function saveList(list){
dispatcher.dispatch({type: "SAVE_LIST"});
let serverRequest =
$.ajax(
url: "../../data/list.json",
dataType: 'json',
method: 'PUT',
data: list,
success: function(data) {
console.log("success!"); //does not output
},
error: function(xhr, status, err) {
console.log(status, err.toString()); //outputs a 404 error
}
});
)
}
该reloadList()
函数运行良好,并输出JSON数据。该saveList()
函数引发404错误。我以为这是因为应用程序处理路线的方式,但是我对为什么它与get和not put(就此而言,还是post)一起使用感到困惑。
我一直在努力将数据保存到文件中以做出反应,起初这似乎是正确的方法,但现在我不太确定。我在这里做错什么了吗?
我将根据您的措辞来假设您正在使用某种简单的HTTP服务器(或根本没有服务器)在本地进行开发,并且list.json
是计算机上的文件。如果是这种情况,那么您的问题是您的HTTP服务器没有路由来知道如何处理PUT
s(或POST
s,或者可能是除此以外的任何其他方法GET
)。如果要将文件写入系统,则需要添加一个实际的后端,该后端可以处理PUT
文件系统并与文件系统进行更智能的交互。
不幸的是,没有一种简单的方法可以单独在浏览器中将文件写入磁盘(出于安全原因),但是如果您要避免添加到后端,则可以考虑使用Blob创建要下载的文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句