我的解决方案中有几个项目:WebApi和WebPage项目 Web API项目使用以下Url返回一些数据:
http://localhost:63983/api/values
我的主要网络项目使用另一个端口:
http://localhost:63421/#/
现在当我运行我的Web项目时,我试图对我的WebApi进行简单的Ajax调用 在这里我得到一个非常奇怪的错误: Firebug显示状态:200OK,但它用红色标记,我没有数据。
我认为它可能与跨域有关。
答案 0 :(得分:0)
你猜是完全正确的。您不能读取其他域上的数据。域名是domain name
和port
。当一个人在HTTP
(端口80)上,另一个在HTTPS
(端口443)
您可以通过在WebApi返回的内容中设置标头值,明确允许WebProject对WebApi进行AJAX调用。因此,当您对http // localhost:63983 / api / values进行AJAX调用时,它应包含HTTP标头:
Access-Control-Allow-Origin: http://localhost:63421
可在此处找到更多详细信息:http://css.dzone.com/articles/ajax-requests-other-domains
答案 1 :(得分:0)
您可以使用Microsoft.AspNet.WebApi.Cors
nuget包在Web API中启用CORS支持。
安装上述软件包后,具有以下配置应解决您的问题。
config.EnableCors(new EnableCorsAttribute(origins: "*", headers: "*", methods: "*"));
此处有更多信息:
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api