如何在不更改URL的情况下使用HTTP方法POST

How to use HTTP method POST without changing URL?

本文关键字:情况下 HTTP POST 方法 URL      更新时间:2024-05-30

使用HTTP方法POST发送表单是很常见的。

例如,如果表单操作是"/login",

请求将发送到服务器,URL将类似于"index/login"。

然而,我想实现两件事。

  1. 使用不带"表单"的HTTP方法POST。我想发我自己的信息。

  2. 并且在AJAX 之后不更改URL

谢谢。

更新:回复DvS

我研究过的研究使用了像jQuery或AngularJS这样的库。

但我想用纯javascript实现。(如XMLHTTPRequest)

我不知道如何在AJAX中使用"NOT A FORM"。

也许有一些参考资料我可以研究一下?

再次感谢。

尝试jQuery的AJAX调用

http://api.jquery.com/jquery.ajax/

 $("#id_of_button_to_submit").click(function(){
     $.ajax({url: "/login", success: function(result){
            //do things with your result
            $("#div1").html(result);
     }});
 });

我在"您可能需要jQuery"中找到了答案

var request = new XMLHttpRequest();
request.open('GET', '/my/url', true);
request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    // Success!
    var resp = request.responseText;
  } else {
    // We reached our target server, but it returned an error
  }
};
request.onerror = function() {
  // There was a connection error of some sort
};
request.send();

服务器端由Node.js和express 实现

var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.post('/newindex', function(req, res){
  console.log("req received!");
  res.send('This is POST METHOD');
})
app.listen(8888);

旧帖子,但我遇到了这个问题,它进入了我的搜索结果,我怀疑原因是一样的。

基本上不使用表单操作和提交按钮。然后使用常规按钮或其他任何您想要的按钮来调用该函数。

看起来像是提交按钮的默认表单行为,但没有操作的是HTTPGET到当前页面,它会运行,当然会把一切都搞砸。