asp.net - jQuery AJAX 和 ASP.NET Web 服务在本地工作,但不能远程工作

标签 asp.net jquery

这里很有趣。我有一个 ASP.NET 1.1 项目,其中包含一个 Web 服务。我正在使用 jQuery 的 AJAX 功能从客户端调用一些服务。这就是我的代码的样子:

$.ajax({
    type: "POST",
    url: 'foo.asmx/functionName',
    data: 'foo1=' + foo1 + '&foo2=' + foo2,
    dataType: "xml",
    success: function(xml) {
        //do something with my xml data
    },
    error: function(request, error){
        //handle my error

    }       

});

当我从本地主机上的 IDE 运行该站点时,这非常有用。但是,当我将此站点部署到任何其他服务器时,我收到来自 jQuery 的 parsererror 错误。它似乎甚至没有调用我的服务,因为我放入了一些代码以将日志文件写入磁盘,但它没有将其写入磁盘。

应该从我的本地主机和我部署到的服务器返回完全相同的 XML。

有什么想法吗?

最佳答案

我找到了这个问题的答案。使用 Firebug 进行一些调试后,我注意到服务器返回了一些错误 HTML。我查看了服务器端错误日志记录,异常是“请求格式无法识别。”

经过一番挖掘后,我发现对 web.config 进行以下更改可以纠正错误:

<system.web>                
<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>
</system.web>

现在我有点感兴趣的是,我的本地主机没有该 web.config 条目并且无论如何都可以工作。如果有人能更好地理解这一点,我想知道为什么。

感谢您的所有建议。

关于asp.net - jQuery AJAX 和 ASP.NET Web 服务在本地工作,但不能远程工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586003/

相关文章:

javascript - 开始时的 JQuery 可拖动更改元素

javascript - 这是像 jQuery 对非阻塞代码那样进行回调的正确方法吗?

c# - 面向对象编程基本概念(C#)

asp.net - Global.asax : 'RedirectPermanent' is not a member of 'System.Web.HttpResponse' 中的错误

javascript - 如何在 Chrome 开发者工具中使用 jQuery DataTables API?

javascript - 选择不是具有特定类的元素的后代的所有元素

javascript - 无法在 FF 或 IE 中写入 iframe,仅在 Chrome 中

asp.net - BC30311错误: Why can't I use a PlaceHolder inside a table for a specific user control?

javascript - 如何一键打开多个外部网址而不被浏览器弹出窗口拦截器拦截?

asp.net 多个用户?