我不太确定怎么问这个问题,抱歉..但基本上就是这个......
我刚开始使用Ajax ..并且在后台发送XMLhttpRequest,我遇到问题,表格数据中有一些html特殊字符,特别是&标志过早终止变量
例如。值“你和我”结果为“你”
现在从我的角度来解释这个问题..它只是这个..如果我使用GET方法提交我的常规表单,同样的事情发生..因为变量是URL编码..但如果我将表单设置为POST方法然后一切都保留,因为我需要它..
现在我相信它有什么可做的(?)
hr.open("POST", link, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
特别是在form-urlencoded部分..有替代方案吗?
我不想在我通过Ajax传递的每个变量上运行一个清理例程:(
答案 0 :(得分:1)
&
符号过早终止变量
&
应该终止x-www-form-urlencoded数据中的值。在构建网址时,您需要encode数据。
如果我使用GET方法提交我的常规表单,同样的事情会发生..因为变量是URL编码的
没有。如果您使用GET提交常规表单,则输入的数据将为URL编码,显示为数据的&符号将由%26
表示,而不是原始&
字符,因此相同的事情不会发生。
是否有[application / x-www-form-urlencoded]的替代方案?
您可以使用您喜欢的任何数据格式。有些比其他更容易生成(JSON特别容易从浏览器生成)。然后你有挑战在服务器上解码它们(表单处理库不倾向于使用JSON,因此你必须获得原始POST数据并自己解码)。
由于您的实际问题是通过编码数据来解决的,因此这是不必要的。