请问xmlhttprequest在发送get请求时,请求的参数有没有长度限制?我在发送get请求之前,用str拼接了一个很长的字符串当做请求的参数放在请求的链接中。当我用console.log将str输出到控制台时,控制台无法完整显示str的全部内容,只显示了前面一小部分。请问是HBuilder不允许字符串过长吗?那么请求中的参数是不是也是被hbuilder截取了呢?最终导致请求失败呢?
ps:我使用io将str输出到文件中时,文件中的内容是完整的str。这说明js是能够拼接非常长的字符串的。
2 个回复
DCloud_App_Array
在XHR中是没有限制字符串的长度限制的,我们通常测试都是用几十K的数据完全没有问题。
你提到的console.log方法输出日志是有限制的,所以只能看到前面部分内容(ADB命令限制,暂时还未找到解决方案)。
请求失败的原因有很多,首先网络是否通常?服务器是否允许接收较大的数据?服务器返回的状态码是否正确?
可以尝试使用小数据量的请求进行测试,或者通过抓包工具来查看。
DCloud_UNI_FXY
打印错误信息,如果返回的状态是414.说明是URI太长。超出了服务器端webserver的配置,建议换成post请求。或者调整webserver的限制
水影鸣人 (作者)
返回的状态是414,现在打算使用post请求,请问send方法中的参数格式是怎样的?需要和服务端有关联吗?
2015-04-22 17:41
DCloud_UNI_FXY
你上边代码的格式就是正确的。
2015-04-22 17:49
水影鸣人 (作者)
回复 DCloud_UNI_FXY:sendlist.send("_param="+"["+str+"]");这样可以吗?如果请求中包含多个参数,这些参数是都要放在send方法里面还是可以一部分放在链接里面,另一部分放在send方法里。
2015-04-22 18:13
DCloud_UNI_FXY
都可以。建议可以使用mui.ajax。类似jquery的用法,不需要自己手动拼参数
2015-04-22 18:26
水影鸣人 (作者)
回复 DCloud_UNI_FXY:使用ajax可以成功发送请求了,只是编码格式出现了问题,请问ajax发送请求时怎样设置参数的编码格式?
2015-04-24 15:56
DCloud_UNI_FXY
哪里的编码出问题
2015-04-24 15:58