2013-07-16 56 views
0

我开发了一个使用实体框架的.Net Webapi,并且所有功能都使用uri正常运行... // mywebserver/webappfolder/api/mycontroller?val = 1 & val = 2 & val = 3从开发人员客户端工作站使用ASP.Net Web API

EF和API在同一个项目中。

此时没有必要的自定义客户端应用程序,将此uri输入到本地PC浏览器中,我按预期得到JSON或XML结果。所以,我认为我可以开始编写客户端使用我的发展框的WebAPI和“// mydeveloperserver/...”来运行它

$(document).ready(function() { 
      $('#button').click(function() { 
       alert('Hello. This works'); 
       $.get('http://mywebserver/webappfolder/api/mycontroller', function (data) { 
        $.each(data, function (n, val) { 
         $('#OutputDiv').add(n + ':Dedication ' + val.DedicationName); 
        }); 

       }); 
      }); 
     }); 

了jQuery/AJAX无法填补的结果回调函数,即使我可以看到使用Fiddler成功完成和返回请求。

通过文档挖后,我实现了客户端应用程序消耗不得不把相同 Web服务器上运行“// MyWebServer的/ ......”作为的WebAPI,一旦JQuery的/ AJAX客户端Web应用程序被转移到“MyWebServer的“回调函数按预期填充了JSON结果。 上面的代码现在工作

我们必须在其他服务器上的网站应用和.NET Windows窗体,我想使用它调用的WebAPI和消费数据不影响安全性的应用程序。如何从我的开发者框Web应用程序调用在我的生产服务器上运行的WebAPI。我是否需要在WebAPI服务器上有另一层代码,以允许我从别处使用该数据?

+1

您必须在您的webapi代码中启用CORS支持 –

回答

0

根据Ajay的评论,您需要启用CORS。为此,请下载以下Nuget package(N.B.这是一个预发布/测试版,但它来自Microsoft产品团队)。

有关背景信息和阅读更多关于如何使用这个包的手册是here