Ajax查询POST

时间:2014-11-15 19:59:17

标签: ajax post get roblox

$.ajax({
  url: "http://www.roblox.com/My/Groups.aspx?gid=148530",
  success: function(data) {
    console.log(data);
    var gg = data
    function Post(){
      $.get(url,function(Data){
        var VS = Data.match(/id="__VIEWSTATE" value="(.+)"/)[1]
        var EV = Data.match(/id="__EVENTVALIDATION" value="(.+)"/)[1]
        $.post(url,{
          "__VIEWSTATE" : VS,
          "__EVENTVALIDATION" : EV,
          "__EVENTTARGET" : "ctl00$ctl00$cphRoblox$cphMyRobloxContent$GroupMemberAdminPane$dlMembers_Footer$ctl02$ctl00",
          "__EVENTARGUMENT" : 'Click',
        })
      })
    }
    Post()
  }
})

我试图让它以相反的方式记录它,因此$.post请求将显示该页面的数据(我试图获得的排名)。

请帮忙吗?我真的需要尽快回答。

1 个答案:

答案 0 :(得分:0)

我想你想要这样的东西:

function postback(eventTarget, eventArgument) {
    return function (html) {
        var $html = $("<div>").append(html);

        $.post(this.url, {
            __VIEWSTATE: $html.find("#__VIEWSTATE").val(),
            __EVENTVALIDATION: $html.find("#__EVENTVALIDATION").val(),
            __EVENTTARGET: eventTarget,
            __EVENTARGUMENT: eventArgument
        });
    };
}

var url = "http://www.roblox.com/My/Groups.aspx?gid=148530",
    target = "ctl00$ctl00$cphRoblox$cphMyRobloxContent$GroupMemberAdminPane$dlMembers_Footer$ctl02$ctl00";

$.get(url).done(postback(target, "Click"));

这里发生了什么:

函数postback()创建另一个函数并返回它。 函数接受HTML字符串作为其参数,解析出 viewstate eventvalidation ,并将与webforms兼容的回发发送到预定的目标控件。实际上它封装了发送webforms事件的动作。

最后一行完成实际工作:它获取url并调用postback()(它产生匹配的Ajax成功回调函数)。成功返回Ajax请求后,将调用.done()回调,然后会触发控件上的click事件。

注意:

  • 尝试从与运行脚本的域不同的域中获取URL将失败(请参阅同源策略)。
  • 强烈建议不要使用正则表达式解析HTML。正如您所看到的,使用像jQuery一样功能强大的东西,它更容易阅读。
  • 在发布活动之前,您可能应该包括一个完整性检查以查看目标控件是否存在于页面中。 (if ($html.find("#" + eventTarget).length) ...
  • 分号。使用它们。

推荐阅读: