【问题标题】:Web-service technologies cross domainWeb服务技术跨领域
【发布时间】:2014-01-23 18:29:38
【问题描述】:

最近我一直在尝试实现一个网络服务。我开始尝试在 C# 中使用“Web API”技术。

最终目标是拥有一个连接到 SQL-Server 数据库的 Web 服务,并且可以被位于不同域的其他站点调用。

Web 服务接受请求,连接到数据库并返回 HTML(可以是 JSON 对象中的字符串...等)。客户端站点然后显示此 HTML,从用户那里获取输入,然后将此数据发送回 Web 服务以保存在数据库中。

当调用是跨域时,“Web API”似乎有问题。同源策略阻止我们调用跨域。我读过 CORS,但认为它与 IE8 不兼容,这对我们来说是一个很大的障碍。

我的大部分知识和我们所有的网站都是 ASP.net C#。

有人对如何实现这一点有任何建议吗?

谢谢。

【问题讨论】:

  • Web API 有什么问题?似乎是问题不是问题。
  • 对不起,我相信这是因为同源政策。我已经阅读了一些关于 CORS 的信息,但并不完全熟悉它。我认为它与 IE8 不兼容,这对我们来说是一个很大的障碍。
  • Web API 与 IE8 不兼容?
  • CORS 与 IE8 不兼容。
  • 您的请求是获取还是发布?你可以使用 jsonp 来获取。

标签: c# html json web-services cross-domain


【解决方案1】:

我没有使用 Web API ,但要允许跨域调用 Web 服务,您可以尝试将其添加到 web.config 文件中。它将允许 HTTP GET / POST 请求

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

【讨论】:

    【解决方案2】:

    样品请求:

    $.ajax({
                url: "http://yoururl",
                type: "GET",
                data: "yourdata",
                dataType: "jsonp",
                success: function (response) {
                     //do something;
                }
            });
    

    【讨论】:

      【解决方案3】:

      我们已经通过使用 WCF 服务解决了我们的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-05
        • 1970-01-01
        • 2013-05-15
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        • 2012-02-28
        • 1970-01-01
        相关资源
        最近更新 更多