通过ajax将当前页面html发送回服务器

在我的应用程序中,我通过jquery ajax将我的网页的html发送回服务器(因为我需要在服务器中存储此页面的副本).Code是这样的

$(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; }); 

但这会引发错误:

    Request URL Too Long    

Request URL Too Long


HTTP Error 414. The request URL is too long.

有没有办法实现这个目标?

编辑:从我从这里得到的输入我已经改变了我的代码(更改获取发布)

  $(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; }); 

但仍然存在相同的错误

你应该使用post request not get request。

 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; 

使用POST请求。 IE中的GET限制为2048个字符,大多数其他字符为65,538个字符。

GET方法发送URL中的所有数据。

请改用POST方法。

使用HTTP POST请求。

 $.ajax({ url: url, type: "POST" // ... }); 

这是因为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