如何在 asp.net Web 应用程序中使用 jquery ajax 使用 Web 服务

Posted

技术标签:

【中文标题】如何在 asp.net Web 应用程序中使用 jquery ajax 使用 Web 服务【英文标题】:how to consuming web service using jquery ajax in asp.net web application 【发布时间】:2016-11-08 10:59:59 【问题描述】:

我无法使用 jquery ajax 使用 Web 服务,但可以使用 C# 语言。 这是我的 jquery Ajax 代码`

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="jquery-3.0.0.js"></script>
    <script>
        $(document).ready(function()


            var url = "http://192.xxxx.xx.xx:10000/service1.asmx/GetJsonData";

            $.ajax(
                type: "GET",

                url: url,

                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) 
                    alert("hii");
                    alert(data.d)
                ,
                error: function (xmlHttpRequest, textStatus, errorThrown) 
                    alert("error");
                
            );


        )
    </script>
</head>
<body>
    <form id="form1"  runat="server">
    <div>

    </div>
    </form>
</body>
</html>

The above code is not working but when i am trying the same using  C#  language it is working fine.

错误是:网络错误:IE浏览器拒绝访问。

Google Chrome 中的错误如下所示。 XMLHttpRequest 无法加载 http://192.xxxx.xx.xx:10000/service1.asmx/GetJsonData.No 请求的资源上存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:49951' 因此不允许访问。

`

【问题讨论】:

【参考方案1】:

显然这是一个 Ajax 问题,与 C# 无关。看这里:"No 'Access-Control-Allow-Origin' header is present on the requested resource"

【讨论】:

嗨@thcerutti,我不明白,你能建议我在我的代码中哪里做错了吗?如何解决这个错误。【参考方案2】:

可能的问题

似乎是CORS 相关问题。

来自链接:

出于安全原因,浏览器会限制跨域 HTTP 请求 从脚本中启动。

当您尝试从另一个域访问一个域的资源时会发生这种情况。示例:twitter.com 中的脚本尝试访问 facebook.com API 端点。


可能的解决方案

如果是这样的话:

如果您可以控制服务器,则可以根据需要设置Access-Control-Allow-Origin。 如果您不控制服务器,您可以查看为请求提供服务的 Web 应用程序是否有任何方法来允许来自其他域的请求 根据提供的 OAuth 令牌设置适当的 Access-Control-Allow-Origin 将来自目标 Web 应用程序的页面加载到 IFrame 中,这将代表您发出请求。使用 browser's messaging API 与 IFrame 通信。

【讨论】:

嗨@Fa773N,我无法访问服务器,请告诉我在我的应用程序中完成设置的过程。就像在 eb.config 或我的 aspx.cs 代码中一样。跨度> @GOPALYADAV:我不熟悉 asmx 技术。不过,快速搜索让我找到了this question。试试看是否可以使用此方法设置标题。

以上是关于如何在 asp.net Web 应用程序中使用 jquery ajax 使用 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ASP.NET 在 web.config 文件中写入 appSetting?

如何在asp.net的Web应用程序中录制音频? [复制]

如何在使用 JWT 的 asp.net 核心 web 应用和 web api 中使用谷歌身份验证

如何在 asp.net Web 应用程序中使用 jquery ajax 使用 Web 服务

如何在 ASP.Net Web 应用程序中使用 MODI?

如何在 ASP.NET Web 窗体环境中使用 DLL?