Angularjs $resource在Internet Explorer中发布空对象

Angularjs $resource在Internet Explorer中发布空对象,angularjs,wcf,internet-explorer,Angularjs,Wcf,Internet Explorer,我对Angular 1.4.9中的Internet Explorer 11和$resource服务有问题。我的代码调用web服务发布某些对象: var FooServiceHandle = $resource('some/Address/'); var fooServiceHandle = new FooServiceHandle (); fooServiceHandle.bar = someData; fooServiceHandle.$save().then(function () {

我对Angular 1.4.9中的Internet Explorer 11和
$resource
服务有问题。我的代码调用web服务发布某些对象:

var FooServiceHandle = $resource('some/Address/');
var fooServiceHandle = new FooServiceHandle ();

fooServiceHandle.bar = someData;

fooServiceHandle.$save().then(function () { console.log('saved') });
另一方面,Web服务是WCF REST

[OperationContract]
[FaultContract(typeof(RegistrationNotAllowedFault))]
[WebInvoke(UriTemplate = "some/Address/", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
string Foo(Bar bar);
当我使用IE时,web服务中Foo方法的参数为null(但是调用了服务方法)。就在
$save
调用
fooServiceHandle.bar
变量之前,它不是未定义的,而是一个正确的对象。我的代码在Chrome48和Firefox44中工作

更新

奇怪的是,当我查看IE开发者工具的网络选项卡时,它显示了正确的请求体(JSON)。此外,当我将该请求体复制粘贴到SoapUI时,它会正确执行。IE请求的HTTP方法是ok(POST),也是内容类型(application/json)。第一个IE请求的结果是307,然后是另一个结果是400

更新2

我看不出Chrome和IE在请求方面有什么主要区别,除了一点——在IE中,JSON键的顺序略有不同,但结构还可以

更新3

与$http服务完全相同的问题。在Chrome中它工作,WCF绑定一个对象,而在IE中它不工作,并且在服务方法中获取null参数

var req = {
    method: 'POST',
    url: 'some/Address/',
    data: { bar: someData}
}

$http(req).then(function(){console.log('saved')}, function(){});

这个问题的原因是非常令人难以置信的。不知何故,Internet Explorer和WCF不能一起处理服务结束方法地址处的斜杠。删除反斜杠可消除此问题:

UriTemplate = "some/Address/" => UriTemplate = "some/Address"
var FooServiceHandle = $resource('some/Address/'); => var FooServiceHandle = $resource('some/Address');
在Chrome和Firefox中,反斜杠都不是问题,可能他们会修剪它