我有一个简单的jquery调用,试图从ASMX服务返回一些XML。此调用在本地运行,但在部署了带有.ajax()调用的服务和页面后,我只是在Web服务调用上“旋转”。
我确保ASPNET用户帐户具有访问ASMX所在文件夹的相应权限。另外,在部署到服务器之前,我已将以下行添加到web.config中:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
当我把它放在萤火虫检查电话时,我看到了标题,但是帖子和响应都没有,它只是“旋转”。我从来没有得到任何错误,我只是不停地旋转。
html页面和Web服务位于同一个域中(甚至在同一个文件夹中)。
谢谢。
更新:我现在已经阅读了关于将。[webmethod]添加到.aspx页面上的静态方法(即default.aspx)(link)的Encosia文章。我现在可以在本地调用这些方法而不会出现问题,但是当我部署到IIS 6.0时,我得不到任何响应。这使得.asmx调用脱离了等式,我留下了一些更基本的东西。我错过了什么配置部分允许任何$ .ajax()操作到本地页面工作?
答案 0 :(得分:1)
你的版本我的变化:
<system.web>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
</system.web>
您可能还会比较本地服务器和已部署服务器上的文件,因为还需要web.config的其他部分。
编辑:只是检查,但你是否包装你的添加,并允许JSON(假设你使用它):
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCaching="true" enableCompression="true" />
<webServices>
<jsonSerialization maxJsonLength="5000000"/>
</webServices>
</scripting>
</system.web.extensions>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>