无法在Chrome中加载资源+ $ .ajax调用

时间:2012-02-09 15:35:36

标签: javascript jquery ajax google-chrome

我在使用Chrome和AJAX时遇到了一个非常奇怪的问题,我有一个已经工作了一段时间的自动填充表单。今天早上我启动了Visual Studio,它不再起作用了。它在生产中很好(使用Chrome),如果我使用Firefox或IE,它在本地工作正常,对于chrome它没有!

我收到错误:

  

无法加载资源

在开发者工具中,当我扩展错误时,我得到了:

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);
            }
        });

此外,错误事件被触发,而statusText属性只是“错误”。不是很有帮助。我正在运行Chrome版本:17.0.963.46(我的最新版本为2012年2月9日)。我相信今天早上当我启动电脑时我的Chrome更新了,但我不确定。我的chrome更新时是否有日志告诉我?

1 个答案:

答案 0 :(得分:1)

如果您正在处理代码的本地副本,请确保您在诸如localhost之类的Web服务器中工作。如果您直接在文件系统中工作,Google Chrome将不允许您出于安全原因对文件系统上的文件发出ajax请求。

还有一些事情......

删除它:

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

您没有发送json,而是发送GET请求。相反,添加此

dataType: "json",

以便jQuery期望接收json。

使用正确的字符集application/json让服务器返回标题将contentType设置为utf-8也可能会有所帮助。