
[英]sending user back to previous page after submitting web form on current page, .net
[英]Sending current page html back to server through ajax
在我的应用程序中,我通过jQuery ajax将网页的html发送回服务器(因为我需要将此页面的副本存储在服务器中)。
$(document).ready(function () {
var pcontent = document.body.innerHTML;
var url = new URI().addQuery("pcontent", pcontent);
$.ajax({
url: url,
type: "GET",
success: function (data) {
alert(data.html());
},
complete: function () {
alert(1);
},
error: function(jqXHR, error, errorThrown) {
if (jqXHR.status) {
alert(jqXHR.responseText);
}
else {
alert("Something went wrong");
}
}
});
return false;
});
但这会引发错误:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Request URL Too Long</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</HEAD>
<BODY>
<h2>Request URL Too Long</h2>
<hr>
<p>HTTP Error 414. The request URL is too long.</p>
</BODY>
</HTML>
有什么办法可以做到这一点?
编辑:从我从这里得到的输入,我已经像这样更改了我的代码(更改了发布)
$(document).ready(function () {
var pcontent = document.body.innerHTML;
var url = new URI().addQuery("pcontent", pcontent);
$.ajax({
url: url, type: "POST"
, success: function (data) {
alert(data.html());
},
complete: function () {
alert(1);
},
error: function (jqXHR, error, errorThrown) {
if (jqXHR.status) {
alert(jqXHR.responseText);
} else {
alert("Something went wrong");
}
}
});
return false;
});
但仍然存在相同的错误
您应该使用发布请求而不是获取请求。
var pcontent = document.body.innerHTML;
var url = new URI();
$.ajax({
url: url,
type: "POST",
data: {"pcontent": pcontent},
success: function (data) {
alert(data.html());
},
complete: function () {
alert(1);
},
error: function(jqXHR,error, errorThrown) {
if(jqXHR.status){
alert(jqXHR.responseText);
}else{
alert("Something went wrong");
}
}
});
return false;
这是因为GET变量仅支持有限数量的数据,请使用类型:POST而不是GET类型
$.ajax({
url: url, type: "POST"
, success: function (data) {
alert(data.html());
},
complete: function () {
alert(1);
},
error: function(jqXHR,error, errorThrown) {
if(jqXHR.status){
alert(jqXHR.responseText);
}else{
alert("Something went wrong");
}
}
});//indentation
使用HTTP POST请求。
$.ajax({
url: url,
type: "POST"
// ...
});
使用POST
请求。 IE中的GET
字符数限制为2048个,其他大多数字符数则限制为65,538。
GET方法发送URL中的所有数据。
请改用POST方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.