【问题标题】:How do I send a json object to a server using Javascript? [closed]如何使用 Javascript 将 json 对象发送到服务器? [关闭]
【发布时间】:2019-12-16 00:48:00
【问题描述】:

我是使用 JS 的初学者,所以这对你们中的许多人来说似乎是一个简单的问题。 我有两台服务器在本地主机上运行。一个在端口5000 上,另一个在端口8000 上。我在5000/assets/1.json 有一个文件夹,我可以在8000 中使用xmlhttprequest 检索这个json。我现在的问题在于我想将8000中创建的json文件写入5000/assets

我已经尝试了 xmlhttprequest post 方法,这给了我一个方法不允许的错误。

var data = new FormData();
data.append("data", "the_text_you_want_to_save");
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
xhr.open('POST', 'http://localhost:5000/assets/', true);
xhr.send(data);

我希望将 my data 变量写入 5000 的资产目录。我需要服务器端脚本吗?

【问题讨论】:

  • 分享您的完整错误
  • 您在这些端口上运行的服务器进程是什么?
  • 仅仅将某些内容发布到 URL 不会将文件转储到那里;需要在服务端设置/assets/路由,处理POST请求并写入文件。
  • “我希望将 my data 变量写入 5000 的资产目录”——如果您向 https://www.google.com/ 发出 POST 请求,那么您是否希望 Google 的主页被您的数据覆盖?
  • new activeXObject("Microsoft.XMLHTTP") — 现在是 2019 年,没有充分的理由让您的代码在今天支持 Internet Explorer 6!

标签: javascript json http post server


【解决方案1】:

如果没有服务器端脚本,您将无法将数据写入服务器。使用普通的 Ajax 是不可能的。

您可以运行一个后端服务器,它接受来自第一个应用程序的 json 数据并将其写入磁盘。

【讨论】:

    【解决方案2】:

    我需要一个服务器端脚本来执行此操作吗?

    除非在端口 5000 上运行的服务器具有某种配置以知道它应该以这种方式响应该 POST 请求,是的,您需要为该服务器进程编写一些代码才能这样做。

    您还需要有代码或配置在响应中提供正确的CORS 标头,因为http://localhost:5000http://localhost:8000 是不同的来源,因此您将无法读取响应POST 由于Same Origin Policy.


    旁注:除非您需要支持真正过时的 IE 版本(例如 XMLHttpRequest 上使用该 chck。

    【讨论】:

    • 您好 T.J,谢谢您的回复。我在尝试 GET 时也遇到了 CORS 错误,但在 chrome 上发现了一个暂时禁用它的扩展。是的,我认为不需要检查。它在代码中,因为我试图复制我在互联网上看到的东西。
    猜你喜欢
    • 2023-03-21
    • 2014-11-06
    • 2016-09-09
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多