我正在关注this tutorial在Web窗体网站上构建我的第一个Asp.net Web API,但我遇到了一个问题。我创建了两个项目:
现在我的问题是,如果我使用网络浏览器({1}}导航到我的web api URL,那么这很有效,并且根据浏览器返回XML或Json数据。
但是,如果我使用客户网站中的Web服务URL,则无法返回任何内容!
以下是我从客户网站调用网络服务的方式:
http://localhost:39930/api/products/
这是firebug中请求的快照:
请注意,响应为空。
那么,我在这里做错了吗?是否应该添加一些配置以允许远程调用服务?
提前致谢。
答案 0 :(得分:1)
这是因为您的主机项目和客户端项目在不同的端口上运行,这违反了相同的原始策略并且被禁止。请参阅此处的详细信息http://en.wikipedia.org/wiki/Same_origin_policy
如果你希望这个工作,你可以使用jsonp而不是json。看看这篇文章http://www.jquery4u.com/json/jsonp-examples/#.UISVAo3iYsc