我有以下腳本作品,但我不明白爲什麼當類型設置爲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