【发布时间】:2013-11-13 20:34:58
【问题描述】:
我知道这个问题已经在这里讨论过几次了,我做了功课并检查了,我尝试了我找到的每一个解决方案,但无济于事,一定有我遗漏的东西。
首先,ajax 调用的目的:将 3 个字符串参数发送到 Web 服务中的一个方法,该方法会将这些数据保存到我的数据库中。 如果处理成功,则返回一个带有真假的json字符串。
奇怪的是在本地一切正常,但是一旦我将文件上传到服务器上,对 web 服务的 ajax 调用就停止了工作......
首先,我检查是否可以通过在浏览器中输入 URL 来访问 Web 服务。我可以访问它并查看我的方法,但是,我说但是,当我测试我的任何方法并单击“调用”按钮时,会发生一件奇怪的事情:单击按钮会打开一个新选项卡,它会将我发送回列出我可用方法的页面?!? 有谁知道为什么会这样?连最基本的方法Hello World都行不通……
我在调试问题时遇到了麻烦。我需要一些关于如何调试的见解。
最奇怪的是ajax调用返回成功,但是数据库中没有数据保存?!?
其他信息:我的网站使用 URL 路由。不知道这是否会影响 Ajax 调用,但我还是想提一下。
提前感谢大家的帮助。
=============================================
编辑:问题已解决
在我的 web.config 中有一个重写规则,它在 URL 的末尾添加了一个“/”,这与 ajax 调用混淆了,我注释了代码并且一切都按预期工作。让大家知道,这段代码与对 web 服务的 AJAX 调用不能很好地配合:
Web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="AddTrailingSlashRule1" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.myDomain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.myDomain.com/{R:1}" />
</rule>
<rule name="LowerCaseRule1" stopProcessing="true">
<match url="[A-Z]" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{URL}}" />
</rule>
</rules>
</rewrite>
=============================================
【问题讨论】:
-
我们能看到
.whiteNightSubmit的HTML吗? -
您是否使用过
Firebug或类似的浏览器开发工具来检查从服务调用返回的 JSON 负载?如果是这样,请在您的问题中发布该有效负载。 -
我正在使用 Firebug 和/或 Chrome 的开发面板。有效载荷?嗯,我很乐意但是...我似乎不知道该怎么做...有趣的是,警报弹出但控制台没有写任何错误...
-
尝试在 Chrome 开发工具中使用断点,并且在 alert(data.status) 行中,状态未定义,并且当我访问此 URL 时,数据似乎包含一个看起来像默认页面的 HTML 模板: www.mydomain.com/webservice.asmx
标签: c# asp.net web-services jquery