【问题标题】:Same Origin Policy and Web Services同源策略和 Web 服务
【发布时间】:2011-03-27 17:32:43
【问题描述】:

如果我有一个基于 WCF SOAP (C#) 的 Web 服务在我的本地 IIS 中运行 - 我创建了一个 ASP.net 网站,再次在我的本地 IIS 中运行 - 从我的网页发出 HTTP 请求调用的 javascript 会成功吗?还是同源策略规则在这里发挥作用?

【问题讨论】:

    标签: wcf web-services same-origin-policy


    【解决方案1】:

    这取决于您的站点在 IIS 中的配置方式。查看此维基百科article 的同源政策。

    假设您的 WCF SOAP 服务在 http://localhost/service/GetStuff.svc 上运行,而您的 ASP.NET 站点在 http://localhost/mysite/Default.aspx 上运行。根据同源文章中的表格,调用应该成功,因为您的服务器主机在两种情况下都是相同的(localhost),并且仅在所引用的目录上有所不同。

    但是,如果您的 WCF SOAP 服务在 http://localhost:8080/service/GetStuff.svc 上运行,并且您的 ASP.NET 站点在 http://localhost/mysite/Default.aspx 上运行(默认端口为 80),那么调用将失败,因为服务器主机的访问端口不同.

    要考虑的三件事是主机、协议(http 或 https)和端口。根据文章,并非所有浏览器都强制执行端口。

    我希望这会有所帮助。祝你好运!

    顺便说一句,你的应用程序有效吗?

    【讨论】:

    • 感谢 D Hoerster - 我已经设法让我的 javascript 调用我的 web 服务并将 xml 返回给我。所以我很高兴 - 它们确实共享相同的主机和协议 - 不确定端口,但我怀疑它们是相同的。
    猜你喜欢
    • 2014-12-19
    • 2011-07-20
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2010-09-25
    相关资源
    最近更新 更多