我有实施CORS的WCF服务。我在WCF中通过localhost:59258方法调用AJAX POST。如果我在其他PORT上通过localhost调用此方法 - 它正在工作。如果我使用相同的方法调用相同的WCF但是另一个URL我得到400 Bad Reqest,请参阅下面的内容。我试图通过Fiddler调用方法并且它正在工作。哪里可能有问题?
第一个例子 - 在AJAX和Fiddler中工作
使用CORS侦听http://localhost:8733/json/GetId
的WCF
我来自http://localhost:59258
方法GetId
第二个例子 - 在AJAX中不工作,在Fiddler中工作
使用CORS侦听http://some.domain:8733/json/GetId
的WCF
我来自http://localhost:59258
方法GetId
以下是WCF界面的一部分:
[OperationContract]
[WebInvoke(Method = "*",
UriTemplate = "GetId",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
string GetId(string a);
这是AJAX的一部分:
var request = $.ajax({
type: "POST",
url: "http://some.domain:15010/json/GetId",
data: JSON.stringify( { a: "123" }),
error: function (e) {
alert(e.responseText);
},
datatype: "json",
contentType: " text/json; charset=utf-8"
});
fiddler的日志 - 没有工作的例子:
答案 0 :(得分:0)
几天后我找到了解决方案。 问题出在WCF服务上。我试图在互联网上使用很多解决方案。许多解决方案涉及在IIS上托管的WCF。只有一个自我托管WCF与CORS 的解决方案正在运行:link