帮助 jquery 自动完成和 json 响应

发布于 2024-08-24 14:09:23 字数 1217 浏览 2 评论 0原文

我有一个 ASP.NET 2.0 json Web 服务,它返回以下响应

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://microsoft.com/webservices/">[{"CUName":"Raytown-Lee\u0027s Summit Comm CU","CUCity":"RAYTOWN","CUState":"MO","CUContractNo":"02406"},{"CUName":"Summit Credit Union","CUCity":"MADISON","CUState":"WI","CUContractNo":"04800"},{"CUName":"Summit Credit Union","CUCity":"GREENSBORO","CUState":"NC","CUContractNo":"03200"},{"CUName":"Summit Hampton Roads FCU","CUCity":"NORFOLK","CUState":"VA","CUContractNo":"04504"},{"CUName":"SummitOne Federal CU","CUCity":"OGDEN","CUState":"UT","CUContractNo":"14301"}]</string>

当我将其绑定到我的测试框以与自动完成插件一起使用时,我在下拉列表中看不到任何结果。我用萤火虫检查了调用是否已完成。

我的前端调用如下所示

$(document).ready(function() {
 $("#city").autocomplete("CUList.asmx/GetCUList", {
  dataType: 'jsonp',
  parse: function(data) 
  {
   var rows = new Array();
   for(var i=0; i<data.length; i++){
    rows[i] = { data:data[i], value:data[i].CUName, result:data[i].CUName };
   }
   return rows;
  },
  formatItem: function(row, i, n) {
   return row.CUName + ', ' + row.CUCity;
  },
  max: 50
 }); 
  });

有人可以让我知道我做错了什么吗?

谢谢

I have the a ASP.NET 2.0 json web service that returns the following response

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://microsoft.com/webservices/">[{"CUName":"Raytown-Lee\u0027s Summit Comm CU","CUCity":"RAYTOWN","CUState":"MO","CUContractNo":"02406"},{"CUName":"Summit Credit Union","CUCity":"MADISON","CUState":"WI","CUContractNo":"04800"},{"CUName":"Summit Credit Union","CUCity":"GREENSBORO","CUState":"NC","CUContractNo":"03200"},{"CUName":"Summit Hampton Roads FCU","CUCity":"NORFOLK","CUState":"VA","CUContractNo":"04504"},{"CUName":"SummitOne Federal CU","CUCity":"OGDEN","CUState":"UT","CUContractNo":"14301"}]</string>

When I bind this to my test box for use with the autocomplete plugin, I don't see any results in the dropdown. I checked with firebug that the call is made.

My front end call looks like below

$(document).ready(function() {
 $("#city").autocomplete("CUList.asmx/GetCUList", {
  dataType: 'jsonp',
  parse: function(data) 
  {
   var rows = new Array();
   for(var i=0; i<data.length; i++){
    rows[i] = { data:data[i], value:data[i].CUName, result:data[i].CUName };
   }
   return rows;
  },
  formatItem: function(row, i, n) {
   return row.CUName + ', ' + row.CUCity;
  },
  max: 50
 }); 
  });

Can someone please let me know what I am doing wrong?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百善笑为先 2024-08-31 14:09:23

那不是 JSON :) 那是封装在 XML 中的 JSON 字符串。您需要让您的 WebMethod 返回 JSON 而不是 XML。

例如装饰你的 WebMethod:

[WebMethod, ScriptMethod]
public List<thing> GetCUList()

That's not JSON :) That's a JSON string wrapped in XML. Yo need to make your WebMethod return JSON instead of XML.

For example decorate your WebMethod:

[WebMethod, ScriptMethod]
public List<thing> GetCUList()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文