我正在开发一个网络抓取工具,可以与我们的合作伙伴门户集成,并提交发布请求以进行出价更改。
问题是抓取工具在无法执行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错误?
由于
答案 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()
方法是一种很好的做法。