我有以下问题。我知道经常对此进行安静的讨论,我尝试了很多可能性,但到目前为止没有一个可行的方法。
我的javascript文件中有一些数据,我想将这些数据添加到服务器上已经存在的.json文件中。我尝试通过以下方式进行操作,但是每当我在调用ajax_get_json()后打开.json文件时,都不会添加任何新数据。
function ajax_get_json(){
var hr = new XMLHttpRequest();
hr.open('POST', 'myyjson.json', true);
hr.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
var us = document.getElementById("firstname").value;
var msg= document.getElementById("message").value;
hr.onreadystatechange= function(){
if (hr.readyState == 4 && hr.status == 200){
var obj = JSON.parse(hr.responseText);
obj['participant'].push({"user": us, "message": msg});
var sendingObj =JSON.stringify(obj);
}
}
hr.send (sendingObj);
}
我的myjson.json文件具有以下结构:
{ "participant":[
{"user":"Steven", "message":" Hey,i m in!"},
{"user":"Tim", "message":" i wrote sth."},
{"user":"lukas", "message":"example"}
]}
有谁知道您要解决的问题是什么,还是有更好的解决方法?
提前致谢!
在客户端使用javascript时,无法在服务器上编写JSON。如果这是可能的,那么从安全角度来看,这将是一件坏事。您需要使用在服务器上使用的任何语言(PHP,Java,javaScript)编写JSON。然后,例如使用AJAX从客户端调用该服务器功能。它可能像这样:
客户端请求上的Javascript,例如url www.yourserver.com/writejson.php?u=steven&m=Hi
在服务器上,您捕获该请求并写入JSON文件。用户名为steven
,消息为Hi
。
顺便说一句,你有被误解的XMLHttpRequest.send
方法。您没有发送要保存在服务器上的数据。你开枪了XMLHttpRequest
。以下是演练如何执行代码的演练:
function ajax_get_json(){
var hr = new XMLHttpRequest(); // 1.
hr.open('POST', 'myyjson.json', true); // 2.
hr.setRequestHeader ("Content-type", "application/x-www-form-urlencoded"); // 3.
var us = document.getElementById("firstname").value; // 4.
var msg= document.getElementById("message").value; // 5.
hr.onreadystatechange= function(){ // 6.
if (hr.readyState == 4 && hr.status == 200){ // 8. this is called every time XMLHttpRequest state changes
var obj = JSON.parse(hr.responseText); // 9. this is called when XMLHttpRequest is completed and response is gotten
obj['participant'].push({"user": us, "message": msg}); // 10.
var sendingObj =JSON.stringify(obj); // 11.
}
}
hr.send (sendingObj); // 7. sendingObj is undefined
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句