Javascript 正在获取状态200,但体内无反应
这是我的服务电话Javascript 正在获取状态200,但体内无反应,javascript,node.js,post,xmlhttprequest,Javascript,Node.js,Post,Xmlhttprequest,这是我的服务电话 <script> function secureClicked() { var uname = document.getElementById('uname').value; var pwd = document.getElementById('pwd').value; var obj = new Object(); obj.username = uname; obj.password = pwd; var userO
<script>
function secureClicked() {
var uname = document.getElementById('uname').value;
var pwd = document.getElementById('pwd').value;
var obj = new Object();
obj.username = uname;
obj.password = pwd;
var userObj = JSON.stringify(obj);
xhr = new XMLHttpRequest();
var url = "http://127.0.0.1:9923/login";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
var json = JSON.parse(xhr.responseText);
document.write(json.accesstoken);
onComplete(xmlhttp.responseText);
}
};
xhr.send(userObj);
}
我可以在postman中获得响应,但无法在浏览器中获得响应。
我在这里干什么?
有人能帮我吗?
提前谢谢 您的浏览器devtools控制台中是否出现CORS错误?除非您的前端代码也由
http://127.0.0.1:9923
然后您将跨来源发送请求,因此http://127.0.0.1:9923/login
后端中的路由必须配置为发送访问控制允许源站
响应标头。如果您的后端没有这样做,您的浏览器仍将收到响应(并且您可以在浏览器开发工具中看到它),但您的浏览器将拒绝允许前端代码访问响应。您的前端代码还将发送一个值为application/json的Content Type
请求头;charset=UTF-8
,它会触发CORS飞行前选项请求,因此您的后端还必须配置为通过发送访问控制允许标头
和访问控制允许方法
响应标头来响应该选项请求。请参阅@sideshowbarkerMy backed end hasapp.use(函数(req,res,next){res.header(“访问控制允许源”,“*”);res.header(“访问控制允许头”,“X-request-With”);next();})代码>'enabledAgain,如果在浏览器开发工具控制台中看到任何错误消息,您会看到哪些错误消息?没有错误消息您会在浏览器开发工具控制台中看到CORS错误吗?除非您的前端代码也由http://127.0.0.1:9923
然后您将跨来源发送请求,因此http://127.0.0.1:9923/login
后端中的路由必须配置为发送访问控制允许源站
响应标头。如果您的后端没有这样做,您的浏览器仍将收到响应(并且您可以在浏览器开发工具中看到它),但您的浏览器将拒绝允许前端代码访问响应。您的前端代码还将发送一个值为application/json的Content Type
请求头;charset=UTF-8
,它会触发CORS飞行前选项请求,因此您的后端还必须配置为通过发送访问控制允许标头
和访问控制允许方法
响应标头来响应该选项请求。请参阅@sideshowbarkerMy backed end hasapp.use(函数(req,res,next){res.header(“访问控制允许源”,“*”);res.header(“访问控制允许头”,“X-request-With”);next();})代码>'enabledAgain,如果在浏览器开发工具控制台中看到任何错误消息,您会看到哪些错误消息?没有错误消息
module.exports = {
login: function(req, res) {
MongoClient.connect(mongoUrl, function (err, db) {
if (err) {
console.log('into error of mongo');
res.status(400).json({
message: 'Connection to database failed !!',
error: err
});
}
insertDocument(db, req.body, function (result) {
console.log('into insert doc');
res.setHeader('Content-Type', 'application/json');
res.status(200).json({
access_token: result._id
});
});
});
var insertDocument = function (db, data, callback) {
console.log('into insert doc function');
console.log(data);
var string = JSON.stringify(data);
var objectValue = JSON.parse(string);
var username = objectValue['username'];
var password = objectValue['password'];
console.log(username);
db.collection('user_list').findOne({$and:[{ 'username':username},{'password':password}]}, function(err, result) {
if (err) {
res.status(500).json({
message: 'Failed to add in DB!!'
});
} else {
callback(result);
}
});
}
}
};