通过$ ajax传递大量的html无法正常工作

时间:2012-09-10 10:00:26

标签: jquery ajax

我正在为电子商务制作产品添加页面,在提交数据之后,ajax调用将所有数据传递到查询页面,并将信息存储到数据库中。但问题是当传递大量的html数据时,它会传递description中的任何内容。假设在描述区域写一个短段,那么它很容易通过ajax。但每当有长段落或者让大量的html数据出现时。它失败 。我正在使用的代码是

function product()
{
var micategory=$('.micatg option:selected').val();
var misubcategory=$('.misubcatg option:selected').val();
var currency=$('.micurrency option:selected').val();
var looking_for=$('input:radio[name=lookingfor]:checked').val();
var title=$('.btitle').val();
var condition=$('input:radio[name=bcondition]:checked').val();
var buy_description=CKEDITOR.instances['textarea_description_add'].getData();

var buy_country=$('.bcountry option:selected').text();
var buy_city=$('.bcity').val();
var zipcode=$(".bzipcode").val();
var price=$(".bprice").val();
var video_link=$("#infolink").val();
var address=$(".baddress").val();
var loguser=$("#loginuser").val();
var product_id=$("#prod_id").val();
var dataString = 'category='+ micategory+'&subcategory='+misubcategory+'&currency='+currency+'&looking_for='+looking_for+'&title='+title+'&condition='+condition+'&country='+buy_country+'&city='+buy_city+'&zipcode='+zipcode+'&price='+price+'&video_link='+video_link+'&address='+address+'&loguser='+loguser+'&product_id='+product_id+'&description='+encodeURIComponent(buy_description);
alert(dataString);

$.ajax({
type: "GET",
url: "modules/buy&sell/add_prod.php",
data: dataString,
cache: false,
success: function(html){
alert(html);
alert("Your Product is Successfully Added");
window.location = "buy.php";
 }
 });
}

由于大量的html我使用encodeURIComponent读取堆栈中的某个地方。但仍然没有帮助。任何人都可以帮助我。

3 个答案:

答案 0 :(得分:2)

使用 POST代替GET ,因为GET的大小限制。

在ajax配置对象中。

所以,它看起来像:

$.ajax({
    type: "POST",
    url: "modules/buy&sell/add_prod.php",
    data: dataString,
    cache: false,
    dataType: 'html', // add this if you only passed html, if have other value then remove it
    success: function(html) {
        alert(html);
        alert("Your Product is Successfully Added");
        window.location = "buy.php";
    }
});

答案 1 :(得分:2)

我认为这是由于使用GET方法传递数据时数据大小的限制。

更多详情here

您应该使用POST方法。

答案 2 :(得分:0)

你应该使用post方法,

输入:“发布”,

使用Get方法,我们可以发送有限的数据。这取决于浏览器。