liaofeng_xiao
liaofeng_xiao
2010-06-01 16:39

jquery ajax没响应

已采纳

各位,使用jquery ajax post发送请求,请求参数(data)太长则后台接收不到请求。
如果将data改为“1234”等简单的参数,则发送成功。因此可以确定是参数的问题。
[code="html"]
$.ajax({
method:"POST",
url: ajaxRequestURL,
//data: "1234",
data: requestParams,
async: true,
cache: false,
dataType: "text"
});
[/code]
requestParams的格式为:
[code="html"]
var params="";
for(var i=0;i<phoneNumbers.length;i++){
params+="insertMemberDto.orders["+i+"].memberPhone="+tds[(i*7+0)]+"&"+
"insertMemberDto.orders["+i+"].memberName="+tds[(i*7+1)]+"&"+
"insertMemberDto.orders["+i+"].memberEmail="+tds[(i*7+2)]+"&"+
"insertMemberDto.orders["+i+"].memberPassword="+tds[(i*7+3)]+"&"+
"insertMemberDto.orders["+i+"].memberNumber="+tds[(i*7+4)]+"&"+
"insertMemberDto.orders["+i+"].memberUsualNumber="+tds[(i*7+5)]+"&"+
"insertMemberDto.orders["+i+"].memberProductId="+tds[(i*7+6)]+"&";
}

requestParams=params.slice(0,params.length-1);
[/code]
发送请求前alert出url和data,确定没有问题,直接在地址栏敲入url也没有问题,所以确定是请求参数data的问题。比较长,最大可达到1000个字符,按理说使用post发送也没什么问题...是字符格式吗?在firefox 看请求内容,各项参数也都正确,WHY?

请求达人相助!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • myali88 myali88 11年前

    [quote]
    [code="javascript"]
    $.ajax({
    method:"POST",
    url: ajaxRequestURL,
    //data: "1234",
    data: requestParams,
    async: true,
    cache: false,
    dataType: "text"
    });
    [/code]
    [/quote]
    你写错了,要设置“POST”请求,应该是:
    $.ajax({
    type:"POST",
    url: ajaxRequestURL,
    //data: "1234",
    data: requestParams,
    async: true,
    cache: false,
    dataType: "text"
    });
    [/code]
    所以,其实你上面的请求还是以GET方式发起的,GET请求的URL长度是有限的,大约2k吧。

    点赞 评论 复制链接分享
  • jncharles jncharles 11年前

    楼上的post应该不是从缓存里取的数据吧?

    点赞 评论 复制链接分享
  • EQ_LJ EQ_LJ 11年前
    1. $.ajax({
    2. [color=red] method:"POST", [/color]应该是type:"POST",
    3. url: ajaxRequestURL,
    4. //data: "1234",
    5. data: requestParams,
    6. async: true,
    7. cache: false,
    8. dataType: "text"
    9. });

    并且 需要注意的是!
    如果你是在IE中,那你的数据是不能成功发送的,
    只能是第一次发送成功!~
    IE的缓存处理不到位~!
    所以 你的参数在家个时间才能发送到服务器端!~
    否则IE将不发送数据,直接在缓存内部取
    如:
    t=new Date();
    然后Ajax方法的 data: requestParams+"&"+t;
    不关你数据量大小的事!~
    你发送的这点数据根本没超出post提交限定的大家

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    不是“method:"POST"”

    点赞 评论 复制链接分享

相关推荐