Javascript CGI文件写入文件,仅具有读取权限

Javascript CGI文件写入文件,仅具有读取权限,javascript,json,permissions,apache2,Javascript,Json,Permissions,Apache2,每当单击按钮时,我的web服务器都会发送xmlhttprequest来编写JSON文件。但是,文件在写入时仅具有读取权限。此外,这仅在web服务器请求执行cgi脚本时发生。但是,如果我尝试自己从命令行执行此cgi脚本,则该文件将同时具有读写权限。是否有任何方法可以允许web服务器使此cgi脚本以完全权限写入文件 根据要求,下面是我的代码部分,它发送xmlhttprequest并获取/json文件 <script> function loadXMLdoc() {

每当单击按钮时,我的web服务器都会发送xmlhttprequest来编写JSON文件。但是,文件在写入时仅具有读取权限。此外,这仅在web服务器请求执行cgi脚本时发生。但是,如果我尝试自己从命令行执行此cgi脚本,则该文件将同时具有读写权限。是否有任何方法可以允许web服务器使此cgi脚本以完全权限写入文件

根据要求,下面是我的代码部分,它发送xmlhttprequest并获取/json文件

<script>
        function loadXMLdoc() {
            var xmlhttp = new XMLHttpRequest();
            var url = "/cgi-bin/run.cgi"
            var id = document.getElementById("inputId").value;
            var mutation = document.getElementById("inputMutation").value;
            var position = document.getElementById("inputPosition").value;
            var json;
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status==200) {

                    $.getJSON("data.json",function(result){
                        $.each(result, function(i, field){
                            output = "<h1>Output<h1>"
                            for (var f in field){
                                output+="<p>Identifier: " + field[f]["value"]+" Position: "+field[f]["position"]+" Mutation: "+field[f]["mutation"]+"</p>"
                            }
                        });
                    });
                    document.getElementById("test_container").innerHTML = output    
                }
            }
            xmlhttp.open("GET", url+"?id=" + id + "&mutation=" + mutation + "&position=" + position, true);
            xmlhttp.send()
        }
    </script>

chmod 0777 cgiscript
将为每个人设置读/写/执行权限。嗯,是的,我知道chmod命令。然而,这个JSON文件经常被重写,这意味着我每次都必须对它进行chmod。我用chmod 777保存了一次,但当cgi脚本再次执行时,它再次创建了一个新的、锁定的权限文件。@JonathanM我刚刚添加了发送请求并打开JSON的代码file@JonathanM以及run.cgi中打开文件进行写入的部分和
$.getJSON()
。只需执行
$.getJSON
,而不创建xmlhttprequest对象。
$.getJSON
将为您的应用程序创建它。就像现在一样,你正在加倍关注对象。
write_file = open("%s/data.json" %(root_directory), 'w')
write_file.write('{"results": [\n')
for i,result in enumerate(results):
    write_file.write('\t{"value": "%s", "mutation": "%s", "position": "%s"}' %      (result["value"], result["mutation"], result["position"]))
    if i != len(results) - 1:
        write_file.write(",")
    write_file.write("\n")
write_file.write("]}")
write_file.close()