javascript - Node js将JSON发送到jquery我不明白为什么它不能
问题描述
Server site:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(express.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.get('/testJson', function (req, res) {
res.sendFile("/my_project/testJson"+ "/" + "testJson.html" );
})
app.post('/myaction', async function(req, res) {
var st = req.body.status;
res.status(200);
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify({ status: st }));
});
app.listen(8081, function() {
console.log('Server running at http://127.0.0.1:8081/');
});
Client site
$.fn.ajaxShow = function(st) {
xhrct = $.ajax({
type: 'POST',
dataType: "json",
data : { status : st },
url: 'http://127.0.0.1:8081/myaction',
success: function (data) {
if(data!=null) {
var fotoData = $.parseJSON(data);
$(fotoData).each(function (i, obx) {
alert(obx.status);
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("XMLHttpRequest:
"+XMLHttpRequest.responseText);
alert("textStatus: "+textStatus);
alert("errorThrown: "+errorThrown);
}
});
}
我想从 to 发送数据,JSON
但有一些错误。它 alert是 null ,是 'error' 并且是 null。在服务器上,我尝试但它不起作用。我做错了什么?node js
jquery
XMLHttpRequest.responseText
textStatus
errorThrown
res.setHeader('Content-Type', 'application/json')
res.send(JSON.stringify({ status: st }))
我希望有人帮助我。
解决方案
试试下面的代码
服务器端
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(express.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.post('/myaction', async function(req, res) {
var st = req.body.status;
res.status(200);
res.setHeader('Content-Type', 'application/json');
res.send({ status: st });
});
app.listen(8081, function() {
console.log('Server running at http://127.0.0.1:8081/');
});
客户端
function test(st){
var reqData = {status:st};
$.post("http://localhost:8081/myaction",reqData,function( data ) {
console.log(data);
alert(data.status);
})
}
推荐阅读
- java - Flink 中的局部变量
- javascript - cy.click() 只能在单个元素上调用
- django - 查询/注释中的 Django 格式 DecimalField
- java - SqlConnection 在连接测试时抛出错误
- swift - Swift 初始化器
- c++ - vim 和 ctags,未找到具有相同签名的多个定义
- makefile - 是否有任何 make 命令来告诉 gcc 搜索头文件?
- ruby-on-rails - 如何在文本中找到数据库元素?
- sql - SQL 获取所有具有 MAX() 的名称 where month='jan'
- javascript - 如何从嵌套的 ng-repeat 访问项目?