서버 측 파일에서 XML 데이터를 가져 와서 서버 측 스크립트 (예 : PHP가 없음)를 사용하지 않고 성공적으로 액세스했습니다.(서버 측 스크립트를 사용하지 않고) jQuery를 사용하여 아파치 서버의 XML 파일에 쓰기
다시 서버 측 스크립트 (예 : PHP가 없음)를 사용하지 않고 약간의 변경 후 XML 데이터를 서버 측의 파일에 다시 작성하고 싶습니다. 여기에 지금까지 무엇을 가지고 :
<button id='WriteToXml'>Write to XML</button>
<script>
$('#WriteToXml').click(function() {
var output_xml;
$.ajax({
type: "GET",
url: "/data/testdata_input.xml",
dataType: "xml",
async: false,
success: function(xml) {
$(xml).find('input').remove();
$(xml).find('test').append('<output></output>');
output_xml = xml;
}
});
// Alternative code?
// $.post("/data/testdata_output.xml", $(output_xml), "xml");
$.ajax({
type: 'POST',
url: "/data/testdata_output.xml", //url of receiver file on server
data: $(output_xml) , //your data
contentType: "text/xml",
dataType: "xml",
cache: false,
async: false,
success: function(xml) {console.log('success\n'+ $(xml).find('test'));}
});
});
</script>
이 another SO thread에서, 나는 때문에 (보안상의 이유로) 자바 스크립트의 디자인에 서버 측 스크립트를 사용하는 데 필요한 것을 읽었다. 그러나 in another thread, 내가 PHP를 포함하지 않은 코드를보고, 그래서 내가 서버의 XML 파일에 기록이 코드를 사용할 수 바라고 있어요 :
$.ajax({
type: 'POST',
url: "/data/testdata_output.xml", //url of receiver file on server
data: "<test></test>" , //your data
contentType: "text/xml",
dataType: "xml",
cache: false,
async: false,
success: function(xml) {console.log('success\n'+ $(xml).find('test')
지금까지 내가 성공 메시지를 얻을 수 있지만, 서버의 XML 파일은 그대로 유지됩니다. 내가 오해 한 부분을 이해하는 것은 좋을 것입니다. 그 사이에 나는 서버 측에이 PHP 코드를 사용하여 작동하도록 노력할 것입니다 :
//javascript
$.post('savedata.php', {data: "<test></test>",filename: "/data/testdata_output.xml"}, function(){/*Save complete*/});
//savedata.php
$data = $_POST['data'];
$filename = $_POST['filename'];
$f = fopen($filename, 'w+');
fwrite($f, $data);
fclose($f);
을하지만 여전히 이해하는 것이 좋을 것이다.
또한, 나는 $ .post 코드보다는 PHP 파일에서 XML 파일 형식을 사용하는 방법에 대한 몇 가지 메모를 좋아하는 것 (은 $ .post의 JQuery와 문서 기준) :
$.post("/data/testdata_output.xml", "<test></test>", "xml");
감사
서버 측 형식없이 서버 측 작업을 수행 할 수 있다고 생각하지 않습니다./어떤 종류의 아약스 처리기. 이런 종류의 주사를 허용하는 것은 심각한 보안 구멍이 될 것입니다. –