js 发送http请求

js 发送http请求

2018-03-11 21:19:25 harryhare 阅读数 21086更多

分类专栏: js

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/harryhare/article/details/79520351

最简单的方法自然是jquery

$.get();
$.post();

//example
var params = {id:1,name:'tom'};
url = '/test_post.php';
$.post(url,params,function(data){
    alert(data);//这个data就是test_post.php返回的数据
});

但是有的网站并没有加载jquery的js,如果直接用控制台写代码就会报函数没有定义的错误,当然可以把 “http://code.jquery.com/jquery-1.11.1.min.js“文件中的内容复制到console,不过也可以用纯的javascript

xmlhttp=new XMLHttpRequest();
  • 1

例子是刷hostloc 的金币(访问其他用户的空间,可以赚2金币,每天10次机会) 
代码

//jquery raw
for(var i=1;i<=20;i++)
{
    $.get("/space-uid-"+i+".html");
}

//time delay
const interval=1000;
var page=1;
var click_like=function(){
    let url="/space-uid-"+page+".html"
    $.get(url);
    page++;
    console.warn("visit:"+url);
    if(page>10){
        interval_id=window.clearInterval(interval_id);
    }
}
var interval_id = window.setInterval(click_like,interval);


//js only
for(let i=1;i<=20;i++){

    xmlhttp=new XMLHttpRequest();
    url="/space-uid-"+i+".html"
    xmlhttp.open("GET",url,true); //第三个参数是同步异步,主线程只能异步
    //xmlhttp.onreadystatechange=favorOK;//发送事件后,收到信息了调用函数 
    xmlhttp.send(); 
}

其中原生js参考: 
http://www.jb51.net/article/86157.htm

附: 
tampermonkey的hostloc 通过访问空间赚积分的 代码, 
插件在积分左边添加签到按钮,点击即可

// ==UserScript==
// @name         hostloc checkin
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  add button to get hostloc credit throw visit others' space
// @author       harryhare
// @match        http://www.hostloc.com/**
// @grant        none
// ==/UserScript==


var i=0;
function visit(){
    if(i>=15){
        return;
    }
    var xmlhttp=new XMLHttpRequest();
    var url="/space-uid-"+i+".html";
    console.log('visit',url);
    i++;
    xmlhttp.open("GET",url,true); //第三个参数是同步异步,主线程只能异步
    xmlhttp.onreadystatechange=visit();
    xmlhttp.send();
}


//time delay
const interval=500;
function visit2() {
    if(i>=15){
        interval_id=window.clearInterval(interval_id);
        return;
    }
    var xmlhttp=new XMLHttpRequest();
    var url="/space-uid-"+i+".html";
    console.log('visit',url);
    i++;
    xmlhttp.open("GET",url,true); //第三个参数是同步异步,主线程只能异步
    xmlhttp.send();
}
var interval_id;

(function() {
    'use strict';

    var target=document.getElementById("extcreditmenu");
    if(!target){
        return;
    }
    var button=document.createElement('button');
    button.innerHTML='签到';
    button.οnclick=(e)=>{
        //visit();
        interval_id= window.setInterval(visit2,interval);
    };
    target.parentElement.prepend(button);

})();
原文地址:https://www.cnblogs.com/grj001/p/12223799.html