我正在编写一个演示应用程序,它将使用HTTP服务发布从Angular 4应用程序中调用WCF Rest服务。
我可以将数据成功发布到我的服务方法(操作合同)中。
但是它两次调用了我的服务,第二次调用了服务方法。
第一次它刚打Global.asax
文件。
这是angular的http post的工作方式吗?
以下是服务电话:
以下是运营合同或休息服务方法:
以下是服务的实现:
以下是Global.asax
代码:
此Global.asax代码被击中两次,我不明白为什么吗?
以下是Chrome开发者工具栏的“网络”标签的详细信息,它两次调用WCF rest。
启用是Chrome网络请求和响应: 首次通话是“期权”通话:
第二个呼叫是后期呼叫:
答案 0 :(得分:2)
正如Ethan所说:您正在使用CORS。因此,网络浏览器首先使用OPTIONS请求调用端点。
但是这不会调用Rest-API两次(您可以使用后端日志记录或后端中的断点进行检查)。 我认为您的前端正在开发模式下运行(您可以在浏览器日志中检查它->如果运行在开发模式下,则angular将创建一个日志记录条目。)
在开发人员模式下,对每个用户交互和(imho)开发人员模式下的每个http调用进行双重检查,以防止出现计时和“检查后更改值”错误。