使用node.js和express来处理POST请求
Using node.js and express to process a POST request
我是AJAX的新手,也是web开发的新手,我的本地服务器和远程服务器处理post请求时遇到了问题。我使用的是node.js和express模块。
这是我的服务器代码:
var express = require('express');
//start server
var app = express.createServer();
//handle requests
app.post('/hello', function(req, res){
res.send("hello");
});
app.listen(8888);
我知道,很基本。为了测试这一点,我通过Chrome中的控制台手动创建了一个XMLHttpRequest(我已经禁用了在本地机器上测试的跨源策略):
var xhr = new XMLHttpRequest();
xhr.open('POST', 'localhost:8888/hello', true);
xhr.send('name=me'); //body of request is irrelevant at this point
当我将请求发送到本地机器时,它会立即返回并表示失败。当我将请求发送到远程服务器(localhost被服务器的IP替换)时,我不会在控制台中收到错误,但当我检查xhr对象的状态时,它失败了。
我不知道问题是我的服务器的编写方式,还是我向服务器发送请求的方式。然而,我一直在看一些教程和示例,它们显示了像我上面所做的那样快速处理post请求,以及其他像我上面那样显示发送post请求的教程。
发送和处理GET请求似乎运行良好。我一定是错过了什么。
谢谢,Xaan。
当您发布POST:时,您需要在URL中包含HTTP
xhr.open('POST', 'http://localhost:8888/hello', true);
XHR如果调用js不是由Web服务器提供服务,则不起作用。
你应该做的是在你的快递服务器上添加一个简单的路线
app.get('/', function( req, res) {
res.sendfile('index.html');
})
其中index.html包含测试代码。
如果你想从不同的网络服务器进行测试,并面临令人讨厌的跨源策略,你也可以使用这个超级有用的命令在你当前的文件夹中生成一个网络服务器:
python -m SimpleHTTPServer
我经常使用它,所以我实际上给它取了个别名:
alias www='python -m SimpleHTTPServer'
相关文章:
- 为什么Hapi.js POST处理程序返回空负载
- 如何处理HTTP 204”;无内容”;在Restangular POST中
- 使用node.js和express来处理POST请求
- 为什么我们需要为POST定义res.on('data'..,即使我们不处理数据
- 使用jQuery生成POST表单并处理结果
- JSON / JQUERY - ajax post,如何在成功函数中处理 XML 数据
- 如何处理 AngularJS 中 $http.post 的延迟
- 允许 C# 接受和处理 POST 请求
- 在使用 POST 方法发送密码之前,有没有办法使用 bcrypt 对密码进行哈希处理
- AngularJS应该如何处理由于过时的XSRF令牌而导致的$http.post 中的403错误
- 在javascript http post请求之后处理不同的php响应
- 如何使用 JQuery .load(this.href) 处理 POST 请求
- 轨道:轨道中的 POST 422(不可处理的实体)?由于路由或控制器
- 提交 JQuery 表单 $.post() 处理成功时的显示消息
- 在 POST ajax 处理程序中更改 window.location 会发出新的 ajax 调用,而不是重定向
- 将元素ID传递到数组中以进行POST表单处理
- 节点/请求错误:“;处理POST请求:无内容类型”;
- 如何在jQuery中处理POST请求的响应
- 在JavaScript Firebase应用程序中处理POST请求的正确方法
- 共享类&;用户&;没有方法处理POST /1/collections"