使用jquery在服务器上保存文件

时间:2017-11-02 16:24:29

标签: php jquery ajax xml

此代码有效,因为它运行时没有错误: -

//  and send data to the server
sfname = "emptydeck02.xml";
$.ajax({
  type: "POST",
  url: "deck_data/" + sfname,
  dataType: "xml",
  data: xmlv,
  success: function() {
    alert(sfname+" saved");
  },
  error: function() {
    alert("An error occurred while saving XML file.");
  }

});

有人可以帮忙解决这些问题吗?

  1. 为什么此代码不会更新服务器上的emptydeck02.xml?

  2. 为什么它不能在服务器上创建emptydeck02.xml,如果它还不存在?

  3. 我怀疑我在服务器上需要一些PHP代码但是如何使用上面的代码调用它?

  4. 请注意,deck_data目录具有公共和组写权限。

    另外,我使用已知的xml代码加载xmlv,当我读取它时...

1 个答案:

答案 0 :(得分:1)

我认为你误解了HTTP是什么(并且不是),以及为什么人们开发像WebDAV和REST这样的东西。

HTTP只是一个协议(协议,如果要求X,Y表示成功,Z表示失败等),用于客户端(通常是Web浏览器)和Web服务器(例如Apache,NGINX,IIS等)。 / p>

当您POST时,您只是说" 我正在向您发送一些数据到此资源URI "。 Web服务器选择对该数据执行(或不执行)的操作是一个完全独立的问题 - 并且意味着将在该URI处创建文件。

最初(根据我的理解),HTTP旨在解决"简单"允许TCP网络一端的客户端请求某些数据(GET)的问题。随后的"动词" (例如POST)被引入以允许格式化数据被推回到另一种方式 - 然后随着技术不可避免地继续发展,像WebDAV这样的技术试图扩展HTTP以表现“更像是一个文件系统"。 (我选择的单词,仅基于我对WebDAV目的的基本理解。)

我的观点是:HTTP仅提供协议,但并不意味着实现。如果您希望让您的Web服务(使用HTTP)允许创建文件,则必须在服务器端实现相应的Web服务。 (正如你所说,PHP就是这样做的一种示例语言。)

如果您允许可能不受信任的来源将数据推送到您的网络,则安全性是一个巨大的问题。否则,如果您一般都在寻找干扰器,我建议您开始阅读PHP(如果您想要映射"虚拟" URI,请开始阅读Apache mod_rewrite到一个PHP脚本)或查看WebDAV服务器实现,如Apache的mod_dav