水影鸣人
水影鸣人
  • 发布:2015-04-22 10:07
  • 更新:2015-04-22 14:12
  • 阅读:4671

xmlhttprequest发送get请求时的参数的长度限制

分类:HTML5+

请问xmlhttprequest在发送get请求时,请求的参数有没有长度限制?我在发送get请求之前,用str拼接了一个很长的字符串当做请求的参数放在请求的链接中。当我用console.log将str输出到控制台时,控制台无法完整显示str的全部内容,只显示了前面一小部分。请问是HBuilder不允许字符串过长吗?那么请求中的参数是不是也是被hbuilder截取了呢?最终导致请求失败呢?

ps:我使用io将str输出到文件中时,文件中的内容是完整的str。这说明js是能够拼接非常长的字符串的。

2015-04-22 10:07 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

在XHR中是没有限制字符串的长度限制的,我们通常测试都是用几十K的数据完全没有问题。
你提到的console.log方法输出日志是有限制的,所以只能看到前面部分内容(ADB命令限制,暂时还未找到解决方案)。
请求失败的原因有很多,首先网络是否通常?服务器是否允许接收较大的数据?服务器返回的状态码是否正确?
可以尝试使用小数据量的请求进行测试,或者通过抓包工具来查看。

DCloud_UNI_FXY

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

该问题目前已经被锁定, 无法添加新回复