我即将解决这个问题.我使用非常简单的jQuery ajax调用来从数据库中获取值,并使用值填充一些select元素,所有这些都返回为
JSON.它在大多数浏览器上无缝地为我工作,但是客户端报告他们和他们的客户都没有看到结果.
我一路上添加了一些Console.log()命令以确保代码正在执行,而且确实如此.有时ajax GET到有问题的URL工作,其他时候是STILL返回200 OK但代码根本不执行进一步,并且错误回调中没有显示ajax错误消息.
这是我正在使用的代码,有人可以发现可能导致某些浏览器窒息的明显事物吗?如果是这样,如果你能指出它,我将不胜感激:
var $j = jQuery.noConflict(true); $j(document).ready(function(){ //console.log("jQuery has loaded"); //console.log("attempting to load country list via AJAX call Now"); $j.ajax({ url: 'http://www.topplaces.co.za/templates/seb_one/positions/search_establishments_filter/search/db.PHP?q=countries&rand='+Math.random(),success: function(data){ //console.log("Successfully got country list,going to populate the dropdown Now"); if(data.length){ $j("#country").children("option:not(:first)").remove(); $j("#country").attr("disabled",false); $j.each(data,function(resultIndex,result){ var o = new Option(); $j(o).html(result.country).val(result.country); $j("#country").append(o); }) //console.log("Country list should be populated Now?"); } },error: function (xhr,ajaxOptions,thrownError){ //console.log(xhr.responseText); console.log(thrownError); },dataType: 'json',cache: false }) $j("#country").live('change',function(){ var id = $j(this).val(); if(id == ""){ $j("#province").attr("disabled","disabled"); $j("#town").attr("disabled","disabled"); return false; } $j.ajax({ url: 'http://www.topplaces.co.za/templates/seb_one/positions/search_establishments_filter/search/db.PHP?q=provinces&c='+id+'&rand='+Math.random(),success: function(data){ if(data.length){ $j("#province").children("option:not(:first)").remove(); $j("#province").attr("disabled",result){ var o = new Option(); $j(o).html(result.province).val(result.province); $j("#province").append(o); }) } },cache: false }) }); $j("#province").live('change',function(){ var id = $j(this).val(); if(id == ""){ $j("#town").attr("disabled","disabled"); return false; } $j.ajax({ url: 'http://www.topplaces.co.za/templates/seb_one/positions/search_establishments_filter/search/db.PHP?q=towns&p='+id+'&rand='+Math.random(),success: function(data){ if(data.length){ $j("#town").children("option:not(:first)").remove(); $j("#town").attr("disabled",result){ var o = new Option(); $j(o).html(result.town).val(result.town); $j("#town").append(o); }) } },cache: false }) }); })
我已经注释掉了Consol.log命令,因为没有控制台,客户端在IE上收到错误消息.
编辑:我没有提到这是一个相同的域请求,因此遵守同源策略
完整网站在这里:http://www.topplaces.co.za/
右侧是一个动态选择组,以country开头并启动AJAX调用,直到选择了省.这个问题,很多人说国家没有为他们装货……
亲切的问候,
西蒙
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。