2016-04-23 15 views
0

我正在尝试两个项目。第一个主要面向客户端(AngularJS + MVC)开发,第二个主要面向服务器端,包括Web API。我想使用Web API作为控制器。两个项目之间的请求和响应

我将服务器端项目设置为启动项目。然后将其URL(localhost:.... /)设置为控制器的URL,然后运行该项目。之后在浏览器中查看,我也看到了。 (来自客户项目)。该请求正确地从第二个项目获取到API控制器,但我没有保留任何响应。我想这个问题是网址之间的差异。

您的意见是?那么我该怎么做?

回答

0

你得到了什么样的反应? 200(OK)状态还是别的?如果您未在Web API上启用CORS并且您正在从Angular项目的客户端发出api请求,则可能会出现交叉请求错误。

+0

我在浏览器中检查了调试模式,并且看到结果的长度为744个字符。但答复是空的。 – Elnaz

+0

没有错误。 – Elnaz

+1

您是否检查过从api等其他客户端(chrome插件)拨打电话而不是从角度客户端拨打电话时返回的内容。那就是测试API本身并检查返回的响应是什么。如果您看到您期望以这种方式返回的数据。这意味着你的API很好。问题是从角度客户端调用你的api。 – SolomonT

0

请不要介意我可怜的英语。

两个项目是否在同一个域上投放?如果没有,可能会出现交叉原点请求错误。您可以通过添加一些标题来解决它,如下所示: header('Access-Control-Allow-Origin','*'); header('Access-Control-Allow-Methods', 'GET,POST,DELETE,PUT,PATCH'); header('Access-Control-Allow-Headers','Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With');

+0

否请求的资源上存在'Access-Control-Allow-Origin'标头。原因'http:// localhost:.......'因此不被允许访问。但是,正如你所说,我被置于标题之下。我应该在我的web API项目中做什么? – Elnaz

+0

你应该在响应中设置这些标题,而不是请求。 – luckyqiao