使用javascript向服务器提交发布请求

时间:2014-07-22 12:55:41

标签: javascript xmlhttprequest

我正在开发一个网络抓取工具,可以与我们的合作伙伴门户集成,并提交发布请求以进行出价更改。

问题是抓取工具在无法执行jQuery的环境中运行,只能在本机Javascript中运行。

我已确定以下AJAX代码成功发送了帖子请求:

$.ajax({
  type: "POST",
  url: "http://acp.example.com/campaigns/122828",
  data: "data-string"
});

有没有办法将上述语句翻译成本机javascript,以便抓取工具可以执行它?

更新

在下面执行hex494D49的原生Javascript时,我收到了一个" NetworkError:404 Not Found - http://acp.fyber.com/campaigns/122828"消息。

但是,当我在firebug中执行原始AJAX代码时,它成功发送了POST请求。

任何想法为什么同一个网址会使用原生Javascript而不是AJAX返回404错误?

由于

Successful AJAX

404 error with native Javascript

1 个答案:

答案 0 :(得分:3)

使用POST方法发送AJAX请求

 var xhr = new XMLHttpRequest();
 var url = "url";
 var data = "email=hey@mail.com&password=101010";
 xhr.open("POST", url, true);
 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
 xhr.onreadystatechange = function () {
     if (xhr.readyState == 4 && xhr.status == 200) {
         // do something with response
         console.log(xhr.responseText);
     }
};
xhr.send(data);

使用GET方法发送AJAX请求

xhr = new XMLHttpRequest();
var url = "url?email=hey@mail.com&password=101010";
xhr.open("GET", url, true);
xhr.onreadystatechange = function () { 
    if (xhr.readyState == 4 && xhr.status == 200) {
         // do something with response
         console.log(xhr.responseText);
    }
}
xhr.send();

为了避免对服务器发出意外请求,对于将作为URI的一部分传递的任何用户输入参数使用encodeURIComponent()方法是一种很好的做法。