0

我知道这个问题已经在这里讨论过几次,我做了功课并检查过,我尝试了我找到的每一个解决方案,但无济于事,一定有我遗漏的东西。

首先,ajax 调用的目的:将 3 个字符串参数发送到 web 服务中的一个方法,该方法会将这些数据保存到我的数据库中。如果该过程成功,它将返回一个带有 true 或 false 的 json 字符串

奇怪的是,在本地一切正常,但是一旦我将文件上传到服务器上,对 web 服务的 ajax 调用就停止了工作......

首先,我检查是否可以通过在浏览器中输入 URL 来访问 Web 服务。我可以访问它并查看我的方法但是,我说但是,当我测试我的任何方法并单击“调用”按钮时,会发生一件奇怪的事情:按钮单击会打开一个新选项卡,它会将我发送回页面列出我可用的方法?!?有谁知道为什么会这样?即使是最基本的方法 Hello World 也行不通……

我在调试问题时遇到了麻烦。我需要一些有关如何调试的见解。

最奇怪的是ajax调用返回成功,但数据库中没有数据保存?!?

其他信息:我的站点使用 URL 路由。不知道这是否会影响 Ajax 调用,但我还是想提一下。

我提前感谢大家的帮助。

============================================

编辑:问题已解决

我的 web.config 中有一个重写规则,它在 URL 的末尾添加了一个“/”,这与 ajax 调用混淆了,我评论了代码,一切都按预期工作。让我们知道,这段代码与对 web 服务的 AJAX 调用不能很好地配合:

网络配置:

<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>

============================================

4

1 回答 1

0

问题已解决,检查初始帖子,我对其进行了编辑以显示解决方案。感谢所有花时间帮助我的人

于 2013-11-14T16:55:30.170 回答