在我的应用程序中,我通过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;
});
但这会引发错误:
<!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;
});
但仍存在同样的错误
答案 0 :(得分:6)
您应该使用发布请求而非获取请求。
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;
答案 1 :(得分:1)
那是因为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
答案 2 :(得分:1)
使用HTTP POST请求。
$.ajax({
url: url,
type: "POST"
// ...
});
答案 3 :(得分:1)
使用POST
请求。 IE中GET
限制为2048个字符,大多数其他字符为65,538个字符。
答案 4 :(得分:1)
GET方法发送URL中的所有数据。
请改用POST方法。