【发布时间】:2021-09-15 21:05:08
【问题描述】:
尝试将“订单”JSON 数据发布到 Node.js 服务器上的 JSON 文件时不断出错
GET 请求工作正常,但在尝试执行 POST 请求时执行“错误”函数而不是“成功”函数。我错过了什么吗?需要用php吗?
开发工具控制台显示以下错误消息:
POST http://.../orders.json 405 (Method Not Allowed) jquery.js:10109
$("#add-order").on("click", function()
{
var order =
{
name: $name.val(),
food: $food.val()
};
$.ajax(
{
type: "POST",
url: "orders.json",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(order),
processData: false,
success: function(newOrder)
{
alert("success");
$orders.append("<li>Name: " + newOrder.name +", food: " + newOrder.food + "</li>");
},
error: function()
{
alert("Error posting order");
}
});
});
节点js服务器
const http = require("http");
const fs = require("fs");
const port = 3000;
const server = http.createServer(function(request, response)
{
response.writeHead(200, { "Conent-Type": "text/json" })
fs.readFile("orders.json", function(error, data)
{
if (error)
{
response.writeHead(404);
response.write("Error: File Not Found");
}
else response.write(data);
response.end();
})
});
server.listen(port, function(error)
{
if (error) console.log("Something went wrong. Error: ", error);
else console.log("server is listening to port " + port);
})
【问题讨论】:
-
好吧,你遇到了什么错误?
-
不,PHP 不会解决你遇到的任何问题。
-
@Bergi 很抱歉没有澄清。我指的是我在 AJAX 对象中设置的“错误”函数。尝试发布 JSON 数据时,会执行“错误”函数而不是“成功”函数
-
onerror 回调传递了一个错误作为其参数 - 记录:
error: function(err) { console.error('posting order', err); }。还要检查你的 devtools 控制台一般有什么消息。 -
@Bergi 我已经提供了开发工具控制台错误信息
标签: javascript node.js json ajax