由于某种原因,下面的脚本无效。
这是我用来生成json数据的代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Clear()
Response.Write(generate_json_data())
Response.End()
End Sub
这会在屏幕上产生以下输出:
[ {id:0,value:"c++"}, {id:1,value:"java"}, {id:2,value:"php"}, {id:3,value:"coldfusion"}, {id:4,value:"javascript"}, {id:5,value:"asp"}, {id:6,value:"ruby"} ];
这是我到目前为止的jquery,似乎没有用。它没有给出错误,当我输入输入字段时,没有任何反应,它应该显示json数据中的一些数据。
$("input").autocomplete({
source: "serverside_array.aspx",
dataType: "json",
select: function (event, ui) {
$("#txtAllowSearch").val(ui.item.value); // display the selected text
$("#txtAllowSearchID").val(ui.item.id); // save selected id to hidden input
}
});
编辑1:来自铬10的开发者工具的标题
Request URL:http://intranet/test_array.aspx?term=j
Request Method:GET
Status Code:200 OK
Request Headers
Accept:application/json, text/javascript, */*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Type:application/x-www-form-urlencoded
Host:intranet
Referer:http://intranet/rights_stage_three.aspx
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/10.0.652.0 Safari/534.17
X-Requested-With:XMLHttpRequest
Query String Parameters
term:j
Response Headers
Cache-Control:private
Content-Length:204
Content-Type:application/json; charset=utf-8
Date:Thu, 27 Jan 2011 16:11:14 GMT
Server:Microsoft-IIS/6.0
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
编辑2:查看响应数据XHR,我得到以下
名称test_array.aspx
方法获取
状态200确定
输入application / json
尺寸204b
待定时间
编辑3:
现在我完全糊涂了。我通过简单地将aspx页面生成的contenttype更改为:
来实现它text/xml
而不是
applicaiton/json
为什么我在返回json时使用text / xml?
答案 0 :(得分:1)
使用像Firebug或Operas和Chromes内置开发工具这样的webdev工具,可以列出HTTP请求和响应。
检查是否记录了JavaScript错误。
如果没有,请检查响应,如果是回调,则回复Content-Type为text/javascript
;如果仅为JSON数据,则为application/json
。
如果没有内容类型,则由于XSS的安全性,ajax请求可能会失败。
答案 1 :(得分:1)
[ {id:0,value:"c++"}, {id:1,value:"java"}, {id:2,value:"php"}, {id:3,value:"coldfusion"}, {id:4,value:"javascript"}, {id:5,value:"asp"}, {id:6,value:"ruby"} ];
字符串末尾的分号不应该在那里。此外,响应的内容类型应为application/json
。并考虑将所有值都放在双引号中。如果没有它可能会工作,但没有它它不是正确的JSON格式。这是符合标准的JSON字符串:
[{"id":0,"value":"c++"}, {"id":1,"value":"java"}, {"id":2,"value":"php"}]