如果我们在任何字段中传递#字符,使用get方法提交表单时,它会跳过该字段后的所有参数。
e.g。
?bookmy_car.php荚= 6&安培; ROOM_ID = 32&安培; starthour = 14&安培; startminute = 00安培; startday指定= 07&安培; startmonth = 08&安培; startyear = 2015&安培; endhour = 16&安培; endminute = 00安培; endday指定= 07&安培; endmonth = 08&安培; endyear = 2015& end_date = 1438927200& email_conf = 1& cost_code =& desc =旅行说明& trip_comment =#& day_rate = 68.00& hourly_rate = 6.60& hourly_km_rate = 0.35& dur_hours = 2 小时&安培; location_charge = 0.00&安培; damage_cover_charge = 5.00&安培; total_free_kms =安培;长期= 0&安培; RT =&安培; minbooking = 3600&安培; returl =安培; returl_newid =安培; rep_id =安培; edit_type =安培; insPlanid = 3及PLAN_NAME = goOccasional和ID = 3及driver_username_id = 2及
我们如何保护它?我尝试了JavaScript的escape()
和encodeURI()
功能,但没有帮助。
答案 0 :(得分:1)
这是因为查询字符串#
中的hashbang被解释为location.hash
并被热处理为GET参数。您需要在使用URI之前正确编码URI。例如encodeURIComponent
:
alert( encodeURIComponent('trip_comment=#') )

答案 1 :(得分:1)
我同意@dgsq。但我更喜欢只使用encodeURI
,以便他可以在下一页中获得uri。
alert( encodeURI('&trip_comment=#&day_rate=68.00') )