使用 XMLHttpRequest 和现有源进行 POST

发布于 2024-12-01 21:01:37 字数 1067 浏览 0 评论 0原文

我试图仅使用 XMLHttpRequest 做的是:

  • 该脚本下载一个网页,其中只有一种表单。
  • 该脚本将文本插入到字段中。
  • 该脚本提交表单,同时保留有关输入标记的所有详细信息。

我完成了第一部分,但我不知道如何完成接下来的两步。

注意:我无法控制下载的页面,并且它不是格式良好的 XML/HTML。

有人可以向我解释一下如何完成这件事吗?

这是针对 Google Chrome 扩展程序的,因此我拥有所需的所有权限。

编辑:这是我当前的代码:

$.ajax({ url: "http://www.mysite.com/my/testpage.aspx",
        type: "POST",
        data: {
        html: http0.responseText.between("<body>", "</body>")
              },
        success: function(data) {
            var dom = $(data),
            form = dom.filter('form');
            form.attr('onsubmit', 'document.getElementById("error").value = "I\'m done!"; document.getElementById("helpmebutton").disabled = false;');
            form.attr('action', 'http://www.mysite.com/my/testpage.aspx');
            $('#tempdiv').append(form);
            form.find('input[name="ctl00$ctl00$cphSite$cphMySiteContent$linkLocation"]').val(document.getElementById("result").value);
            form.submit();
        }
    });

What I am trying to do only using XMLHttpRequest, is this:

  • The script downloads a web page, that has only one form in it.
  • The script inserts text into a field.
  • The script submits the form, while keeping all details about input tags.

I did the first part, but I have no idea how to finish with the next two steps.

Note: I do not have control over the page downloaded, and it is not well-formed XML/HTML.

Could someone explain to me how I can get this done?

This is for a Google Chrome extension, so I have all permissions needed.

EDIT: this is my current code:

$.ajax({ url: "http://www.mysite.com/my/testpage.aspx",
        type: "POST",
        data: {
        html: http0.responseText.between("<body>", "</body>")
              },
        success: function(data) {
            var dom = $(data),
            form = dom.filter('form');
            form.attr('onsubmit', 'document.getElementById("error").value = "I\'m done!"; document.getElementById("helpmebutton").disabled = false;');
            form.attr('action', 'http://www.mysite.com/my/testpage.aspx');
            $('#tempdiv').append(form);
            form.find('input[name="ctl00$ctl00$cphSite$cphMySiteContent$linkLocation"]').val(document.getElementById("result").value);
            form.submit();
        }
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

可遇━不可求 2024-12-08 21:01:37

我真的会使用 jQuery 来节省你的时间和头痛。

创建一个 ID 为 tempdiv 的临时 div 并将所有内容放入该 div 中。然后,填写适当的元素并提交表单,如下所示:

$.ajax({ url: "http://...",
         success: function(data) {
             var dom = $(data),
                 form = dom.filter('form');

             $('#tempdiv').append(form);

             form.find('input:text').val(123);
             // all input[type=text] get value 123

             form.submit();
         }
});

I would really use jQuery to save yourself time and headaches.

Create a temporary div with id tempdiv and put everything in that div. Then, fill in appropriate elements and submit the form, like this:

$.ajax({ url: "http://...",
         success: function(data) {
             var dom = $(data),
                 form = dom.filter('form');

             $('#tempdiv').append(form);

             form.find('input:text').val(123);
             // all input[type=text] get value 123

             form.submit();
         }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文