我在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>
答案 0 :(得分:1)
第二个警告是因为您的自定义处理程序(Question.asmx)未正确设置您正在发送回的资源的mime类型。
您应该将以下内容添加到ProcessRequest方法中:
context.Response.ContentType = "text/javascript";
这可能也会消除第一个错误,因为HTML页面应该以&lt;!Doctype元素开始有效,这就是我认为错误是抱怨的。
答案 1 :(得分:0)
不确定Chrome中出现错误的原因是什么,但要避免错误的一种方法是直接在页面中嵌入服务代理(question.asmx / js)的javascript。这意味着客户端下载量更大,但往返服务器的次数减少一次(或者根据您站点的身份验证方法减少两次旅行)。
只需在ServiceReference标记中设置InlineScript =“true”
答案 2 :(得分:0)