【问题标题】:Transferring a JSON string between javascript and php files in the same folder在同一文件夹中的 javascript 和 php 文件之间传输 JSON 字符串
【发布时间】:2022-01-01 20:42:10
【问题描述】:

我正在尝试将数据从 javascript 文件发送到 php 文件,然后将数据插入 MYSQL 数据库。 javascipt 文件的目的是获取数据,然后将其交给 PHP 脚本,然后由 PHP 脚本插入。

数据看起来像:{“温度”:257,“压力”:100}

我已经看到使用下面的 js 代码,但是考虑到两个文件都在本地同一文件夹中,这对我来说是最好的方法吗?

javascript

request= new XMLHttpRequest()
request.open("POST", "JSON_Handler.php", true)
request.setRequestHeader("Content-type", "application/json")
request.send(str_json)

php

$str_json = file_get_contents('php://input');

作为旁注,我已经尝试了上面的 javascript,但收到如下错误:

/home/pxmcnjmy/etc/feynmaniot.com/bin/subscriber2.js:38 请求=新的 XMLHttpRequest() ^

ReferenceError: XMLHttpRequest is not defined
    at MqttClient.<anonymous> (/home/user/etc/domain/bin/subscriber2.js:38:5)
    at MqttClient.emit (events.js:314:20)
    at MqttClient._handlePublish (/home/user/node_modules/mqtt/lib/client.js:1277:12)
    at MqttClient._handlePacket (/home/user/node_modules/mqtt/lib/client.js:410:12)
    at work (/home/user/node_modules/mqtt/lib/client.js:321:12)
    at Writable.writable._write (/home/user/node_modules/mqtt/lib/client.js:335:5)
    at doWrite (/home/user/node_modules/readable-stream/lib/_stream_writable.js:409:139)
    at writeOrBuffer (/home/uswer/node_modules/readable-stream/lib/_stream_writable.js:398:5)
    at Writable.write (/home/user/node_modules/readable-stream/lib/_stream_writable.js:307:11)
    at TLSSocket.ondata (_stream_readable.js:718:22)

【问题讨论】:

  • 你是在 NodeJS 服务器上运行它吗?如果是这样,您应该相应地标记您的问题。如果你在 NodeJS 上运行,你可能根本不需要 PHP。
  • 是的,我正在使用 node.js 我将添加这个标签
  • Node JS 不支持XMLHttpRequest,尽管有一个模块支持。有一个 module for MySQL 可以让您直接从 JavaScript 写入数据库,无需 PHP。

标签: javascript php node.js


【解决方案1】:

NodeJs 用于服务器端,就像在服务器上使用 PHP 脚本一样。因此,请使用 NodeJs 中为您提供的 MySQL 模块来完成该任务。但是,如果您需要从 PHP 脚本调用 js 或从 js 脚本调用 PHP 等脚本,请尝试使用一些 shell 命令并将参数传递给脚本(基本上是命令行)。

PS:我还不知道这样做的缺点,但请记住,Node 是单线程的。因此,在该线程上调用 PHP 脚本是您的决定。你可以找到更好的方法。

【讨论】:

    【解决方案2】:

    Nodejs 不提供浏览器 XMLHttpRequest API。你可以使用 NodeJS 自带的http.request,也可以使用axios

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2022-11-03
      相关资源
      最近更新 更多