我有个请求需要跨域,现在发现一个问题,就是参数太长的时候,服务端得到的是被截掉的参数,这个问题该怎么解决啊?var data = "exportName=" + exportName + "&total=" + total + "&exportType=" + exportType + "&browserVersion=" + browserVersion + "&runtimeSql=" + runtimeSql + "&tableHeaderId=" + tableHeaderId + "&exportFields=" + exportFields;
$.ajax({
type:'post',
url:url,
data:data,
dataType:'jsonp'
});问题就是runtimeSql太长的时候就被截掉了,而且,截掉的是runtimeSql的后面部分,而不是将整个data的后面截掉,这个runtimeSql是一个比较复杂的sql语句,写了150行,也就五千多个字符,就传不过去了。跪求解决方法!!!

解决方案 »

  1.   

    我有现成的JS跨域代码,但是不宜公开。这样吧,还是告诉你一个代理式的方法。
    就是写个web站点(webA),用tomcat什么的跑起来,在webA的前台index.html页面向自己的后台/servlet发送请求,/servlet通过java.net包里的URL读取你想要的url就行,然后再返回到前台自己的index.html页面就OK了。
      

  2.   

    唉,你这样弄的很不好,我们做跨域传参,都是http+xml来传的,这样方便维护
      

  3.   

    那就分多次传行不?或者写个socket程序专门传参数的。。偶还没听说过跨域传sql语句的做法。。
      

  4.   

    只传关键数据不行吗?然后用关键数据再组织sql,因为传送的string有长度限制的,传送sql显然是不现实的……
      

  5.   

    我也想过这样做,只是之前的代码都写好了,一般的sql也没这么长,都够用,现在去改的话,改动会比较大。所以还是想看看有没有办法能改动小点
      

  6.   

    看来没什么好办法啊,还是只能在后台重新构造sql。
    非常感谢各位的回答。