0

在这个 JavaScript 示例以及我在网上可以找到的所有内容中:

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

JavaScript 示例代码使用 always GET...

我知道 JQuery 可以使事情变得非常简单,而且我知道它可以与 JQuery 一起使用,但可能我不想为此使用 JQuery(因为 jquery.js 的大小开销)

所以问题很简单,有没有使用POSTvs的选项GET?(POST 比 GET 有更多的优势)如果是这样,为什么会有人使用 GET?

4

4 回答 4

2

就在这里。见规范。(我不发布代码,因为我认为您可以自己处理将 'GET' 更改为 'POST' ...)

为什么要使用 GET?由于SOP问题 (JSONP = GET) 或者因为您使用了非常严格的 REST 元数据,其中 POST 仅用于创建,GET 用于接收,PUT 用于更新,而 DELETE 用于删除项目。

于 2013-06-20T11:15:49.943 回答
2

采用xmlhttp.open("POST","ajax_info.txt",true);

于 2013-06-20T11:15:59.110 回答
1

是的,有……这是一个例子

基本上,您必须像这样打开连接:

xmlhttp.open('post','script/url',true);
xmlhttp.send('data=foo&bar=foobar');//data here

当然,你最好设置几个标题:

xmlhttp.open('post','script/ur',true);
xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.onreadystatechange = function()
{
    if (this.readyState === 4 && this.status === 200)
    {
        console.log(this.responseText);//do whatever
    }
};
xmlhttp.send('data=foo&bar=foobar');//data here
于 2013-06-20T11:15:44.930 回答
1

就在这里,

var r = new XMLHttpRequest(); 
r.open("POST", "path/to/api", true); 
r.onreadystatechange = function () { 
   if (r.readyState != 4 || r.status != 200) 
      return; 

    alert("Success: " + r.responseText); 
}; 
r.send("banana=yellow");

示例取自vanilla-js。使用 vanillajs,它只有 0kb 并且免费 :)

于 2013-06-20T11:15:56.997 回答