我有以下脚本作品,但我不明白为什么当类型设置为JSON它不会工作:为什么我必须将dataType设置为文本?
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
客户方:
$.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)
};
}
});
当我将这些值更改为json时,整件事停止工作并返回“null”...
为什么?
您可以发布样本回复吗?你不必'parseJSON()',当你指定'json'的'dataType'时,jQuery会为你做。 – 2011-05-16 15:03:12
你尝试过'application/json'吗? http://stackoverflow.com/questions/477816/the-right-json-content-type – 2011-05-16 15:04:32
扩大@ no.good的查询,添加一个'console.log(结果);' – Neal 2011-05-16 15:05:11