c# - 从 JQuery 调用 Web 服务时出错

标签 c# jquery web-services asmx

当我尝试从 Jquery 调用简单的 Web 服务方法时,遇到一个奇怪的问题。

在本地它工作正常,但在我的测试服务器上却不行。

jquery 请求如下所示(仅显示实际请求,而不显示方法的其余部分):

    $.ajax({
    type: "POST",
    url: "/Service/Service.asmx/AddTab",
    data: "tab=" + element.innerHTML,
    success: function(msg) {
        alert('success');
    }
});

当我从测试服务器本地运行它时,它工作正常,这让我想知道这是否可能是我在 IIS 中错过的一些设置。

如果我导航到 .asmx 文件并单击 AddTab 方法,我将获得 SOAP 1.1 和 SOAP 1.2 XML 的列表,但不会获得 HTTP POST 请求。如果我在本地导航到它,我会得到所有三个(SOAP 1.1、SOAP 1.2 和 HTTP Post)

服务设置如下:

 [WebService(Namespace = "mynamespace")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService()]
public class Service : System.Web.Services.WebService
{

    [WebMethod(EnableSession=true)]
    [ScriptMethod()]
    public void AddTab(string tab)
    {
        //Some code to add a tab which evidently works locally...
    }

   }

有人知道我在这里缺少什么吗?

最佳答案

通过将以下内容添加到网络配置中最终解决了这个问题:

<webServices>
  <protocols>
    <add name="HttpPost"/>
  </protocols>
</webServices>

显然服务器阻止了来自远程主机的传入请求。

关于c# - 从 JQuery 调用 Web 服务时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681184/

相关文章:

c# - 带 FileHelpers 的条件记录类型

c# - 为什么c#内置的IO类比自制的快?

php - 寻找在线sql注入(inject)工具检查器

javascript - 发布到网址时,Google Analytics 事件不会触发

javascript - 根据轮播中哪张幻灯片处于事件状态显示隐藏内容

c# - WCF 客户端/Java Web 服务 - 反序列化对象为空

ASP.NET:WebService 类实例化的频率是多少?如何在其中制作一个持久对象?

c# - 使用 LINQ 比较两个字段

c# - 从共享项目中获取嵌入式资源

javascript - $().countdown 不是函数