如何在 Web 应用程序中使用 jQuery Ajax 使用 Web 服务 asp.net

本文关键字:Web 使用 Ajax 服务 jQuery asp net 应用程序 | 更新日期: 2023-09-27 17:55:29

我无法使用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 浏览器中的 Acess 被拒绝。

谷歌浏览器中的错误如下所示。XMLHttpRequest 无法加载 http://192.xxxx.xx.xx:10000/service1.asmx/GetJsonData.No 请求的资源上存在"访问控制允许源"标头。因此,不允许访问源"http://localhost:49951"。

`

如何在 Web 应用程序中使用 jQuery Ajax 使用 Web 服务 asp.net

从本质上讲,这是一个 Ajax 问题,与 C# 无关。看看这里:"请求的资源上不存在'访问控制-允许源'标头"

可能的问题

似乎是与 CORS 相关的问题。

从链接:

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

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


可能的解决方案

如果是这种情况:

  • 如果您控制服务器,则可以根据需要设置访问控制允许源
  • 如果不控制服务器,则可以查看为请求提供服务的 Web 应用程序是否有任何方法允许来自其他域的请求
    • 根据提供的 OAuth 令牌设置适当的访问控制允许源
    • 在 IFrame 中加载来自目标 Web 应用程序的页面,这将代表您发出请求。使用浏览器的消息传递 API 与 IFrame 通信。