1

我在 chrome 开发人员 javascript 控制台中收到以下警告:

Uncaught SyntaxError: Unexpected token < http://.../Question.asmx/js(第 1 行)

资源解释为脚本,但使用 MIME 类型 text/html 传输。 http://.../Question.asmx/js

HTML 源代码看起来不错:

<script src="../../../Question.asmx/js" type="text/javascript"></script>

我使用 ASP ScriptManager 来包含这些 Web 服务。他们工作正常,我只是想知道问题到底是什么,因为我有强迫症问题,如何摆脱警告。

编辑:不涉及自定义处理程序。这只是我使用脚本管理器包含的标准 WebService:

<asp:ScriptManager runat="server" ID="scm1" EnablePageMethods="true" EnablePartialRendering="true" >
        <Services>
            <asp:ServiceReference Path="~/Question.asmx" />
        </Services>
    </asp:ScriptManager>
4

3 回答 3

1

第二个警告是因为您的自定义处理程序 (Question.asmx) 未正确设置您发回的资源的 mime 类型。

您应该将以下内容添加到 ProcessRequest 方法中:

context.Response.ContentType = "text/javascript";

这也可能会消除第一个错误,因为 HTML 页面应该以 <!Doctype 元素开头才有效,这就是我认为该错误所抱怨的。

于 2009-03-16T14:10:49.560 回答
0

不确定 Chrome 中错误的原因是什么,但避免它的一种方法是将服务代理 (question.asmx/js) 的 javascript 直接嵌入到您的页面中。这意味着客户端下载量更大,但到服务器的往返次数减少(或两次,具体取决于您站点的身份验证方法)。

只需在 ServiceReference 标记中设置 InlineScript="true"

有关更多信息,请参阅http://weblogs.asp.net/dwahlin/archive/2006/12/28/understanding-asp-net-ajax-web-service-proxies.aspx

于 2009-08-14T17:28:18.037 回答
0

也许这就是你需要的?http://blog.lavablast.com/post/2008/10/Gotcha-WebKit-%28Safari-3-and-Google-Chrome%29-Bug-with-ASPNET-AJAX.aspx

于 2009-11-10T17:02:46.397 回答