ASP.NET Web API没有从远程服务中获取json数据

时间:2012-10-21 16:29:09

标签: asp.net asp.net-ajax asp.net-web-api

我正在关注this tutorial在Web窗体网站上构建我的第一个Asp.net Web API,但我遇到了一个问题。我创建了两个项目:

  1. 主机项目,用于定义Web服务
  2. 客户项目来使用网络     服务。
  3. 现在我的问题是,如果我使用网络浏览器({1}}导航到我的web api URL,那么这很有效,并且根据浏览器返回XML或Json数据。

    但是,如果我使用客户网站中的Web服务URL,则无法返回任何内容!

    以下是我从客户网站调用网络服务的方式:

    http://localhost:39930/api/products/

    这是firebug中请求的快照:

    enter image description here

    请注意,响应为空。

    那么,我在这里做错了吗?是否应该添加一些配置以允许远程调用服务?

    提前致谢。

1 个答案:

答案 0 :(得分:1)

这是因为您的主机项目和客户端项目在不同的端口上运行,这违反了相同的原始策略并且被禁止。请参阅此处的详细信息http://en.wikipedia.org/wiki/Same_origin_policy

如果你希望这个工作,你可以使用jsonp而不是json。看看这篇文章http://www.jquery4u.com/json/jsonp-examples/#.UISVAo3iYsc