In a small asp.net webclient I have the following Ajax-call.
$.ajax({
type: "GET",
url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + querystring
})
.success(function (msg) {
$("#documentcontent").html(msg);
})
The querystring works for default characters but appears to be non-working when using special characters (see example below)
objectId=09028139800c59e3&Db=DIV_Firm <== Works
objectId=090281>>773c5983&Db=DIV_Firm <== Non Working
Based on this (and many more posts on SO i opted to change my ajax-calls as follows (EncodeUriComponent). But none appear to be working (even with the original querystring).
Could someone point out to me what i'm exactly doing wrong?
$.ajax({
type: "GET",
url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + encodeURIComponent(querystring)
})
.success(function (msg) {
$("#documentcontent").html(msg);
})
Note: EncodeUri appears to be working though. But i'd prefer to use EncodeUriComponent
Wouldn't it be a lot easier if there was some way to pass data when doing ajax calls, oh wait, there is, using the data option
$.ajax({
type : "GET",
url : "Search.aspx",
data : {
action : 'GetDocumentInfoByChronicleId',
objectId : '09028139800c59e3',
Db : 'DIV_Firm'
}
});
jQuery will create the querystring for you and escape it appropriately
As a sidenote, encodeURI is exactly what you should be using to encode a querystring containing ?, & etc. as encodeUriComponent will escape those characters as well, making the querystring invalid, but the method posted above is much simpler as you don't have to worry about encoding at all.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With