修改MongoDB以允许跨来源请求
Modifying MongoDB to allow cross origin requests
我对MongoDB比较陌生,所以我仍然习惯它。
目前,我正试图使用下面的javascript代码从客户端向mongo发布一个json对象。
var addUserButton = document.getElementById('add-user');
var userNameInput = document.getElementById('name');
addUserButton.onclick = function() {
var newUser = new Object();
newUser.name = userNameInput.value;
var newUserJson = { 'name': newUser.name};
$.post('127.0.0.1:27017/test', newUserJson);
};
当我运行这个代码时,我会收到错误声明:
XMLHttpRequest无法加载%3127.0.1:27017/test。交叉源请求只支持协议方案。。。etc
我读到这篇文章,想知道在mongoDB中添加以下CORS处理程序是否可以解决这个问题。如果它是正确的,我该如何将它添加到MongoDB中?我找不到关于如何将这个CORS处理程序添加到mongo 的文档
function handleCors(req, res, callback) {
res.setHeader('Access-Control-Allow-Origin', '*')
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE,OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Authorization');
// CORS OPTIONS request, simply return 200
if (req.method == 'OPTIONS') {
res.statusCode = 200;
res.end();
callback.onOptions();
return;
}
callback.onContinue();
};
您的工作在概念上存在问题。
- 您的post方法直接命中了这里的TCP协议,这不应该是
- 您应该基于服务器中的一些Rest API调用一些http请求
- 在服务器路由时,您应该处理CORS(http请求),然后数据库层方法应该获得更新/选择等的数据
顺便说一句,对于服务器路由,您可以使用像expressjs这样的高级节点框架。
如果你想要一个完整的例子,你可以浏览一下解释可以在Angular.js、Node.js和MongoDB的单页应用程序中找到。
相关文章:
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 跨域ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 为什么这是一个跨域请求
- 跨源请求阻止Spring REST服务+AJAX
- JQuery/AAJAX:跨来源请求被阻止
- 跨来源请求被阻止-如何在没有访问服务器的情况下绕过它
- 如何使用java脚本或jquery发送跨域SOAP请求
- 只需添加一个'允许跨来源请求'到我的节点应用程序工作
- 跨域 Ajax 请求 jquery fetch CSV
- 跨节点服务器上的多个 API 请求维护数据
- 如何跨域发送 Ajax 请求
- 每次都必须按 CTRL+f5 才能点击 api.如果不按它,就会弹出跨源请求阻止错误
- 检测ajax请求的跨域重定向
- 使用嵌入式 JS(CORS+AJAX 请求)跨域安全登录
- 来自后端服务的主干请求json(跨域)
- 我想从我的网站发送url请求到跨服务器.我如何在php中做到这一点
- 无法在请求中跨域加载带有自定义头的Angular模板
- 为什么我的网站认为$http请求是跨域的?
- Chrome阻止iframe请求作为跨域请求,即使起源是相同的