当通过jQuery发出同源AJAX删除时,后续通过同一客户端对服务器的调用挂起。我已经摘录了下面的问题。请告知是否存在格式错误,因为这看起来像是一个奇怪的错误。
使用Express 3.5.1,jQuery 1.11.0和Chrome 33.x。
要复制:
node main.js
在网络区域,Chrome会处理DELETE请求,但后续服务器调用将保持为"待定"。我已经尝试了HTML和JSON数据类型和响应。
// Dependencies
var http = require('http'),
express = require('express');
// Basic app
var app = express();
// Logging (for debugging), and parsing dependencies
app.use(express.logger());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.cookieParser());
app.use(express.methodOverride());
// Simple home page
app.get("/", function(req, res) {
var head = "<head><script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script></head>",
body = "<a id='link' style='text-decoration:underline;cursor:pointer;'>Click here to simulate delete</a>, wait a second, then try refreshing.",
params = {
url : "/item/5",
type : "DELETE"
}
ajax = "<script>$(function() { $('#link').click(function() { $.ajax(" + JSON.stringify(params) + "); }); });</script>"
res.send("<html>" + head + "<body>" + body + ajax + "</body></html>");
});
// Simulated deletion
app.del("/item/:id", function(req, res) {
res.send(204);
});
// Make the server listen
var server = http.createServer(app).listen(5000);
答案 0 :(得分:0)
这最终成为非节点相关的第三方插件(我相信它是Sophos,但我可能会弄错)。插件被禁用后,一切正常。
您可以在此处查看更多信息:https://github.com/strongloop/express/issues/2069