ASP.NET ScriptManager在Chrome中引发警告

时间:2009-03-16 13:51:51

标签: asp.net web-services google-chrome scriptmanager

我在chrome developer javascript控制台中收到以下警告:

  

Uncaught SyntaxError:意外的令牌   < 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服务。他们工作正常,我只是想知道究竟是什么问题,因为我有一个强迫症问题,如何摆脱警告。

编辑: 没有涉及自定义处理程序。它只是我使用scriptmanager包含的标准WebService:

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分: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

答案 2 :(得分:0)