Asp.net mvc 3 在MVC中,使用ajax调用调用webservice不起作用,是否给出错误代码404?

Asp.net mvc 3 在MVC中,使用ajax调用调用webservice不起作用,是否给出错误代码404?,asp.net-mvc-3,jquery,http-status-code-404,Asp.net Mvc 3,Jquery,Http Status Code 404,在我的.net框架中,MVC像调用webmethod一样调用webmethod。webservice1.asmx/helloWorld 使用Ajax时,未找到错误404。在我的另一台服务器中,相同的代码正在工作。有 有什么要打的吗??物理路径为我在.net项目中提供了相同的webserive和webmthod。。请帮帮我 编辑 调用web服务的代码 $.ajax({ type: "POST", url: "/WebServices/WebService1.asmx/HelloWorl

在我的.net框架中,MVC像调用webmethod一样调用webmethod。webservice1.asmx/helloWorld 使用Ajax时,未找到错误404。在我的另一台服务器中,相同的代码正在工作。有 有什么要打的吗??物理路径为我在.net项目中提供了相同的webserive和webmthod。。请帮帮我

编辑

调用web服务的代码

$.ajax({
   type: "POST",
   url: "/WebServices/WebService1.asmx/HelloWorld",
   data:"{}",
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   async: false,
   success: function(msg) {
       var data = msg.d;  
   },
   error: function(msg) { 
   alert(msg); 
   }
 });

我怀疑您在javascript调用中硬编码了指向web服务的url,而不是使用url助手生成它。所以试着这样做:

<script type="text/javascript">
    $.ajax({ 
        type: "POST", 
        url: "@Url.Content("~/WebServices/WebService1.asmx/HelloWorld")", 
        data: "{}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        async: false, 
        success: function(msg) { 
            var data = msg.d; 
        }, 
        error: function(msg) { 
            alert(msg); 
        } 
    });
</script>

请注意,web服务的url不再是/WebServices/。。。但它是使用url帮助器生成的。因此,例如,如果您将应用程序部署在IIS中的虚拟目录中,则帮助程序将考虑此虚拟目录。

我怀疑您在javascript调用中硬编码了web服务的url,而不是使用url帮助程序生成它。所以试着这样做:

<script type="text/javascript">
    $.ajax({ 
        type: "POST", 
        url: "@Url.Content("~/WebServices/WebService1.asmx/HelloWorld")", 
        data: "{}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        async: false, 
        success: function(msg) { 
            var data = msg.d; 
        }, 
        error: function(msg) { 
            alert(msg); 
        } 
    });
</script>

请注意,web服务的url不再是/WebServices/。。。但它是使用url帮助器生成的。因此,例如,如果您将应用程序部署在IIS中的虚拟目录中,助手将考虑此虚拟目录。

很难从这里看到您的代码是什么样子的,您可以发布它吗,您如何调用Web服务以及您的webmethod看起来如何我的代码很简单,就像通过Web服务调用ajax一样,例如$.ajax{type:POST,url:/WebServices/WebService1.asmx/HelloWorld,data:{},contentType:application/json;charset=utf-8,数据类型:json,异步:false,成功:functionmsg{var data=msg.d;},错误:functionmsg{alertmsg;};检查url是否指向有效的资源,因为404指定您要查找的资源未找到是的url在我尝试实际执行其工作时显示有效,并且在我的另一台服务器上也显示相同的代码。因此,这里的问题可能是MVC安装问题或任何其他问题。请帮助我。从这里很难看到你的代码看起来怎么样,你能发布它吗,你是如何调用webservice的,你的webmethod看起来怎么样我的代码很简单,比如通过webservice调用ajax,比如$.ajax{type:post,url:/WebServices/WebService1.asmx/HelloWorld,data:{},contentType:application/json;charset=utf-8,数据类型:json,异步:false,成功:functionmsg{var data=msg.d;},错误:functionmsg{alertmsg;};检查url是否指向有效的资源,因为404指定您要查找的资源未找到是的url在我尝试实际执行其工作时显示有效,并且在我的另一台服务器上运行相同的代码..因此这里的问题可能是MVC安装问题或任何其他问题请帮助我..web服务是当OP在浏览器中粘贴url www.example.com/webservice/webservice1.asmx?OP=Helloworld时,您认为OP必须在数据中提供什么?@john,这将取决于webmethod预期的参数。就webservice1.asmx?op=Helloworld url而言,这是SOAP,显然不能使用AJAX调用它。web服务需要通过JSON公开。当OP在浏览器中粘贴url www.example.com/webservice/webservice1.asmx?OP=Helloworld时,web服务是可访问的,您认为数据中必须提供什么样的OP?@john,这将取决于webmethod期望的参数。就webservice1.asmx?op=Helloworld url而言,这是SOAP,显然不能使用AJAX调用它。web服务需要通过JSON公开。