var sUrl = "examtypeaction.phtm?action=setroletypes" + "&roleID="+ roleID +"&examTypeIDs=" + examTypeTree.getCheckedIDs();
var success = function(o) {
var s = o.responseText.toString();
var jsonObject = s.parseJSON(o.responseText);
var result = eval("jsonObject.result");
if (result.resultValue >0) {
alert("配置权限成功!");
}else{
alert('系统错误,请与系统管理员联系');
}
};
var callback = {
success : success
};
*** var req = $C.asyncRequest('POST', sUrl, callback);
由于examTypeIDs的长度会比较长,再加上url
的其它参数,整个url
提交时将近3400个字符串
这么长的字符串是不能直接提交的,超过了浏览器的限制(一说是最大长度是2048)
解决的办法是将url与参数分开,于是修改代码:
var sUrl = "examtypeaction.phtm?action=setroletypes" + "&roleID="+ roleID;
var xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttpReq.open("POST", sUrl, false);
*** xmlHttpReq.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded" );
*** xmlHttpReq.send("examTypeIDs=" + examTypeTree.getCheckedIDs());
var jsonObject = (xmlHttpReq.responseText.toString()).parseJSON(xmlHttpReq.responseText);
if(jsonObject) {
var result = eval("jsonObject.result");
if (result.resultValue >0) {
alert("配置权限成功!");
}else{
alert('系统错误,请与系统管理员联系');
}
}
修改之后问题成功解决,注意带****号行的区别
当我们将参数放在url中提交的时候,如果内容可能比较长的情况下
应当采用后面代码中的方法,避免出错
分享到:
相关推荐
3. 解决乱码问题:文件中提到了乱码问题的解决方法。在设置HTTP响应头的Content-Type时,应当指定字符编码为UTF-8。这样做的目的是确保无论服务器是哪种操作系统平台,接收方浏览器都能正确地解析字符编码,从而避免...
2. **中文字符在URL中的编码问题**:由于URL中不能直接包含中文字符,因此需要使用JavaScript函数如`encodeURI()`或`encodeURIComponent()`进行编码。`encodeURI()`用于整个URI的编码,而`encodeURIComponent()`用于...
在客户端代码中,我们使用XMLHttpRequest对象创建了一个Get请求和一个Post请求,并将参数传递给服务器端。在服务器端代码中,我们使用Request对象来获取参数,并返回结果。 结论 Get和Post请求都是HTTP请求方法,...
标题"jsp get提交 如何隐藏地址栏中的问号"关注的问题是如何在使用GET提交时不让参数出现在地址栏中。默认情况下,GET请求的参数会在URL后面以`?`分隔,然后是键值对的形式。要隐藏这些信息,有以下几种方法: 1. *...
例如,GET请求的URL长度有限制,而POST请求则可以传递大量数据。对于JSON数据,通常使用`JSON.parse()`来解析,而非过时的`eval()`函数,因为`eval()`存在安全风险。 总的来说,Ajax技术是现代Web开发中的重要工具...
但GET请求也有一些限制,例如不能发送大量数据(因为URL长度有限制)、不安全(参数暴露在URL中)等。 ##### GET请求示例代码分析: ```javascript function checkUsername() { // 1. 获取Ajax引擎 var xhr = ...
2. **创建XMLHttpRequest对象**:在`showHint()`函数中,会创建一个XMLHttpRequest对象,它是实现异步通信的基础。在示例中,这个过程通过`GetXmlHttpObject()`函数完成,这个函数通常用于检测并返回一个...
- **数据长度限制**:不同的浏览器对URL长度有不同的限制,这可能导致在提交大量数据时出现问题。 - **安全性问题**:由于数据被明文显示在URL中,所以不适合传输敏感信息。 - **缓存问题**:GET请求容易被缓存,这...
此问题的标题指出“xmlHttp ie6下不跨域还提示没有权限,ie8下不会有这错误”,这涉及到XMLHttpRequest(通常称为XHR)对象在IE6与IE8之间处理跨域请求的差异,以及URL长度限制。 首先,让我们来理解什么是跨域。...
2. **建立连接**:通过XMLHttpRequest对象的open方法,指定请求类型(GET、POST等)、请求URL以及是否异步执行。 3. **发送请求**:调用XMLHttpRequest对象的send方法发送请求,通常发送的数据会被编码并作为参数...
缺点则是由于URL长度限制(不同浏览器限制不同,通常为2048个字符),因此不适合传输大量数据。另外,由于GET请求的数据暴露在URL中,所以不适合传递敏感信息。 #### POST方法 与GET不同,POST方法主要用于向服务器...
这种方式限制了请求的大小,因为URL长度有限。以下是一个简单的Ajax GET请求示例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://example.com/api/data?key=value', true); xhr.onload...
POST请求更适合提交表单数据或修改资源,因为数据不会显示在URL中,且无长度限制。 标签"异步数据传输"揭示了Ajax的主要优势,即在不影响用户交互的情况下,后台加载和更新数据。这种非阻塞的特性使得用户可以继续...
- 更安全,因为请求参数不会显示在URL中。 - 数据长度理论上无限制。 #### 五、使用AJAX的原则 虽然AJAX能够显著提高Web应用的性能和用户体验,但过度使用也会带来一些问题。例如,过多的异步请求可能会导致...
在处理大数据时,通常选择POST请求,因为GET请求的URL长度有限制。POST请求可以将数据放在请求体中,理论上没有长度限制。但需要注意,虽然HTTP协议没有明确规定POST请求体的大小,但实际应用中服务器和浏览器可能有...
在ASP中,POST请求可以在异步刷新时用于提交复杂或大容量的数据,而不会受到URL长度的限制。POST请求不是幂等的,多次执行可能会产生不同的结果。 在ASP中实现异步刷新,通常涉及以下步骤: 1. **创建客户端脚本**...
这种方式适用于获取公开的数据,但受限于URL长度,不适合传递大量数据。 2. POST请求:用于向服务器提交数据,通常用于创建或更新资源。POST请求的数据放置在HTTP请求体中,数据量没有限制,更安全,更适合敏感信息...
然而,GET方法有一些限制,比如对发送数据的长度有限制,并且数据会显示在URL中,这可能不适用于处理敏感信息如密码。 Ajax允许我们在后台与服务器进行通信,而无需整个页面刷新。它通过JavaScript对象...
GET请求将数据附加到URL中,适合获取少量数据,但数据可见且有长度限制。POST请求将数据放在请求体中,适合传输大量或敏感数据。 **6. JSONP(JSON with Padding)** 由于同源策略限制,Ajax不能跨域请求。为解决这...
这种方式的限制在于URL长度有限,且所有参数可见,可能不适用于敏感数据传输。 2. POST请求:与GET相比,POST能传输更多的数据,并且数据是隐藏在请求体中,不会显示在URL上,因此更适合传递大量或敏感信息。POST...