Jquery 如何在Ajax调用中传递正确的Web服务URL

Jquery 如何在Ajax调用中传递正确的Web服务URL,jquery,asp.net,ajax,web-services,Jquery,Asp.net,Ajax,Web Services,我有一个asp.net Web服务,其中包含一个我必须通过Ajax jquery调用的方法。现在我已将此Web服务发布并部署到IIS中,并且通过localhost可以访问此Web服务和Web方法 以下是本地主机上WebMethod的URL http://localhost/app/DateWebService.asmx/GetData 现在,根据我的要求,我需要从jquery Ajax按钮单击调用事件调用此WebMethodGetData。现在,只要我单击按钮,我就可以看到Ajax成功方法中的

我有一个asp.net Web服务,其中包含一个我必须通过Ajax jquery调用的方法。现在我已将此Web服务发布并部署到IIS中,并且通过localhost可以访问此Web服务和Web方法

以下是本地主机上WebMethod的URL

http://localhost/app/DateWebService.asmx/GetData
现在,根据我的要求,我需要从jquery Ajax按钮单击调用事件调用此WebMethod
GetData
。现在,只要我单击按钮,我就可以看到Ajax成功方法中的警报消息,但看不到响应。。 对于响应,我在控制台中得到以下错误

TypeError: msg is null
$("#output").text(msg.d);
这是我的Ajax调用代码

        $("#Button1").click(function () {

            var Name = "asdfg";
            var Contact = "79749497979";
            var Email = "hr@gmail.com";

            $.ajax({
                type: "POST",
                url: "http://localhost/app/DateWebService.asmx/GetData",
                data: '{"Name":"' + Name + '","Contact":"' + Contact + '","Email":"' + Email + '"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {

                    $("#output").text(msg.d);
                }
            });
        });
请帮我克服这个错误提前谢谢

这是我的WebMethod代码

  [WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetData(string Name, string Contact, string Email)
{
    return Name + Contact + Email;
}

我找到了解决办法。问题是得到了许可。我在客户端代码中添加了一行..即

crossDomain: true,
并在我的Web服务的
Web.config
文件中添加了这两行

<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />

像这样

<system.webServer>

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>

<defaultDocument>
  <files>
    <add value="DateWebService.asmx" />
  </files>
</defaultDocument>


我已经准备好了。

你试过调试成功函数了吗?您应该能够停止执行并准确地看到“msg”是什么。也,我会发布web服务代码,以便查看返回的内容。@macoms01我也发布了WebMethod代码。。请查看..@macoms01是否有相同的建议..@macoms01我还检查了浏览器控制台,并阻止了此错误
2跨源请求:同一源策略不允许在http://localhost/app/DateWebService.asmx/GetData. 这可以通过将资源移动到同一个域或启用CORS来解决。
我不熟悉这个错误,但要澄清的是,您的javascript代码执行ajax调用的成功函数,对吗?然后在尝试显示“msg.d”时出错?很抱歉告诉您,但没有帮助..我正在阻止
2跨源请求:同一源策略不允许在http://localhost/app/DateWebService.asmx/GetData. 可以通过将资源移动到同一个域或启用CORS来解决此问题。
对此有任何建议吗?您能否导航到asmx并测试此功能?另外,你是指你的JS文件在你的项目中的位置吗?我也得到了作为答案添加的解决方案。谢谢你的帮助,你可能有一个“错误的解决方案”来解决你的问题。如果您正在本地测试(
localhost
),请检查您的调试方式是否包括端口(例如localhost:1234)。请求。这可能不明显,但也包括-re:
http://localhost
http://localhost:1234
<system.webServer>

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>

<defaultDocument>
  <files>
    <add value="DateWebService.asmx" />
  </files>
</defaultDocument>