I have the following script which works, but I don't understand why it will not work when the type is set to json:
Serverside:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Clear()
Response.ContentType = "text/plain" '//#### <- should't this be text/json? ###
Response.Write(getTabFrame())
Response.End()
End Sub
Function getTabFrame() As String
objStringBuilder = New StringBuilder()
objStringBuilder.Append("[")
objStringBuilder.Append("{""key"":1,""value"":""Default""},")
objStringBuilder.Append("{""key"":2,""value"":""Reports""},")
objStringBuilder.Append("{""key"":3,""value"":""Other""}")
objStringBuilder.Append("]")
Return objStringBuilder.ToString
End Function
Clientside:
$.ajax({
url: 'serverside',
type: 'GET',
dataType: 'text', //#### <------------------------ shouldn't this be json? ###
error: function(xhr, status, error) {
alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
},
success: function(results) {
var obj = jQuery.parseJSON(results);
var len = obj.length;
for(i=0; i<len; i++) {
$("#tabs").tabs("add","tabs.aspx?tab=" + obj[i].key, obj[i].value)
};
}
});
When I change those values to json, the whole thing stops working and returns "null"...
Why?