Javascript 如何使用ajax和express.js发送和接收字符串?
我需要向服务器上的函数发送一个字符串。然后在服务器功能完成后向客户端发送一个字符串 克莱因Javascript 如何使用ajax和express.js发送和接收字符串?,javascript,ajax,node.js,express,Javascript,Ajax,Node.js,Express,我需要向服务器上的函数发送一个字符串。然后在服务器功能完成后向客户端发送一个字符串 克莱因 $.ajax({ type: 'POST', url: 'http://localhost:1337/text', data: { q:document.getElementById("text").value}, success: function (response) { }, error: function () { } }); 服务器
$.ajax({
type: 'POST',
url: 'http://localhost:1337/text',
data: { q:document.getElementById("text").value},
success: function (response) {
},
error: function () {
}
});
服务器
app.post('/text', function(req, res) {
console.log(data.q);
});
app.listen(1337);
这将在客户端上返回此错误
XMLHttpRequest cannot load http://localhost:1337/text. No Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404.
为什么不将文本记录到终端,如何将字符串发送回success函数?您必须在服务器文件中使用带有Express的bodyParser模块
npm install body-parser
bodyParser对象公开各种工厂来创建中间件。所有中间件都将使用解析的主体填充req.body属性,或向回调提供错误。
包含解析数据的新主体对象填充在中间件之后的请求对象上(即req.body)
在服务器文件上,按如下方式更改代码:
var bodyParser=require('body-parser');
var app=require('express');
app.use(bodyParser());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.post('/text', function(req, res) {
console.log(req.body.q);
});
app.listen(1337);
在客户端文件上,将数据类型JSON添加到ajax请求中,并将url更改为“/text”
$.ajax({
type: 'POST',
url: '/text',
dataType: "json",
data: { q:document.getElementById("text").value},
success: function (response) {
},
error: function () {
}
});
谷歌关于访问控制。你的客户不在同一个网站上运行,是吗?您需要为这种情况设置正确的响应标题。@user2415266我正在使用一个节点脚本和一个在chrome中打开的html文件来运行它。这将不会在任何生产中使用。如果我不尝试记录数据,则不会发生错误。问:本质上,问题是您试图从位于不同域的服务器检索数据,例如,您的网站需要位于它试图从中检索数据的同一服务器上,或者它抛出您看到的错误。
body parser不推荐使用bodyParser:use individual json/urlencoded middleware app.js:11:11
因此它返回一个错误app.use(bodyParser())代码>我明白了,我已经编辑了我的答案,请你现在检查一下好吗