Tengo una función Ajax que llama a una solicitud de obtención. Estoy construyendo la URL usando valores de datos de ViewBag , por alguna razón no entiendo que Ajax sigue eliminando los valores del carácter especial hasta el final. Este es mi Ajax
$.ajax({ url: 'api/getProvinceDatByUserID/@ViewBag.reportinPeriod&UserId=@ViewBag.userId&provinceName=@ViewBag.provinceName', type: 'GET', success: function (data) {} });La URL esperada debería verse como
api/getProvinceDatByUserID/Jun-2022&UserId=f8f61c2e-6cf3-454f-b3bd-bf6deae205a4&provinceName=ZAMBÉZIApero Ajax recorta el nombre de la provincia a
api/getProvinceDatByUserID/Jun-2022&UserId=f8f61c2e-6cf3-454f-b3bd-bf6deae205a4&provinceName=ZAMB&por lo tanto, mi solicitud falla,
¿Cómo puedo configurar Ajax para que deje de recortar y elimine los valores y caracteres especiales después? Cualquier ayuda es apreciada
Actualización 1
Tengo que agregar el encodeUri aún con el mismo recorte
url: 'api/getProvinceDatByUserID/@ViewBag.reportinPeriod&UserId=@ViewBag.userId&provinceName='+encodeURI('@ViewBag.provinceName')Actualización 2
Después de agregar encodeURIComponent a la URL, ya no ZAMB& sino ZAMBÉZIA . ¿Ajax entiende qué es ZAMBÉZIA el símbolo encima de la letra E?
así es como finalmente resolví por problema
var provinceName = @Json.Serialize(ViewBag.provinceName);luego acceda a la variable con los caracteres especiales conservados. y la URL final parece
url: 'api/getProvinceDatByUserID/@ViewBag.reportinPeriod&UserId=@ViewBag.userId&provinceName='+ provinceName ,