使用 XMLHttpRequest 和现有源进行 POST
我试图仅使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我真的会使用 jQuery 来节省你的时间和头痛。
创建一个 ID 为
tempdiv
的临时div
并将所有内容放入该div
中。然后,填写适当的元素并提交表单,如下所示:I would really use jQuery to save yourself time and headaches.
Create a temporary
div
with idtempdiv
and put everything in thatdiv
. Then, fill in appropriate elements and submit the form, like this: