我有一个带有“BasicHttpbinding”绑定的 WCF 服务。我可以在 Internet Explorer 中使用 JQuery 优雅地调用该服务。但是相同的代码在 Chrome 或 FireFox 中不起作用。我可以理解来自 Chrome 或 FireFox 的 JQuery Ajax 调用存在跨域问题。我知道我可以使用 crossDomainScriptAccessEnabled="true" 公开“webHttpBinding”绑定并调用该服务。但是如果有一个scanario,我必须使用现有的“BasicHttp”绑定,那么解决方案是什么?我使用以下 JQuery 代码调用了 WCF 服务:
$.ajax({
type: "POST",
url: "http://localhost:1415/MyService.svc/bh/",
data: bhRequest,
timeout: 10000,
contentType: "text/xml",
dataType: "xml",
beforeSend: function (xhr) {
xhr.setRequestHeader("SOAPAction", "http://tempuri.org/IMyService/GetData");
},
success: function (data) {
$(data).find("GetDataResponse").each(function () {
alert($(this).find("GetDataResult").text());
});
},
error: function (xhr, status, error) {
alert(error);
}
});
我的 WCF 服务方法如下:
[OperationContract]
string GetData(int value);
有人可以为此提供任何解决方案吗?