2012-02-09 175 views
2

我在Chrome和AJAX中遇到了一个非常奇怪的问题,我有一段已经工作了一段时间的自动完成表单。今天早上我启动了Visual Studio,并且它不再工作。它可以在Chrome中正常运行(如果我使用Firefox或IE,本地工作正常),但它不适用Chrome。

我得到的错误:

Failed to load resource

的开发人员工具,当我在错误拓展我得到:

f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4 
f.extend.ajaxjquery-1.7.1.min.js:4 
$.autocomplete.sourceCreate:217 
a.widget._searchjquery-ui-1.8.17.custom.min.js:127 
a.widget.searchjquery-ui-1.8.17.custom.min.js:127 
(anonymous function)jquery-ui-1.8.17.custom.min.js:127 

我放在一个断点在回调函数在服务器上,但它不甚至不会把它交给服务器。错误肯定是在客户端,这里是客户端代码:

$("#LocationTxt").autocomplete({ 
      minLength: 4, 
      source: function (req, resp) { 
       $.ajax({ 
        type: "GET", 
        url: "/Ad/SearchLocations", 
        data: "term=" + req.term, 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         resp($.map(data, function (value, key) { 
          return { data: value, label: data[key].Name, value: data[key].Name }; 
         })); 
        }, 
        error: function (data) { 
         alert(data.statusText); 
        } 
       }); 
      }, 
      select: function (e, ui) { 
       var cityId = ui.item.data.Id; 
       $('#AdListing_LocationID').val(cityId); 
      } 
     }); 

而且错误事件被触发,而状态文本属性是简单的“错误”。不是很有帮助。我正在运行Chrome版本:17.0.963.46(我拥有截至2/9/2012的最新版本)。我相信我的Chrome在今天早上更新了,当时我启动了我的电脑,但我不确定。是否有日志告诉我什么时候更新了Chrome?

+0

很酷。所以它不发送任何东西?当您通过开发者控制台手动触发它时会发生什么?如果它永远不会被调用,那么可能是调用它的代码? – tkone 2012-02-09 16:25:27

+0

所以我采取了你的建议,并手动运行它,但它仍然无法正常工作。但后来我决定比较IE/Firefox和Chrome之间的不同之处。当我禁用广告拦截器插件时,我发现它工作!我想有一个更新,该插件打破了代码或黑名单,因为我填写的表单创建了一个“广告”,所以我的很多JavaScript对象名称等在其中都有“Ad”这个词。非常奇怪,但感谢您的帮助! – TheWebGuy 2012-02-09 17:40:04

回答

1

如果您正在处理代码的本地副本,请确保您正在使用web服务器(如localhost)工作。如果您直接从文件系统进行工作,出于安全原因,谷歌浏览器将不允许您对文件系统上的文件发出Ajax请求。

一些事情...

删除此:

contentType: "application/json; charset=utf-8", 

您还没有发送JSON,你发送一个GET请求。相反,添加此

dataType: "json", 

以便jQuery预计接收json。

它也可能有助于让您的服务器返回标头,将contentType设置为application/json并带有正确的字符集utf-8

+0

我在IIS和Visual Studio中设置了它我正在使用“使用自定义Web服务器”选项,因为我想为图像创建虚拟目录,所以我没有直接使用该文件系统。 – TheWebGuy 2012-02-09 15:58:36