xmlhttpRequest 调用 wcf-service ActionNotSupported
Posted
技术标签:
【中文标题】xmlhttpRequest 调用 wcf-service ActionNotSupported【英文标题】:xmlhttpRequest calling wcf-service ActionNotSupported 【发布时间】:2018-08-08 13:52:55 【问题描述】:我正在调用这样的 wcf 服务:
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://localhost:12525/ElasticServiceProxy.svc', true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(soapBody);
如果我将soapBody 放入SoapUI 并调用服务,soapBody 就可以工作。我得到正确答案。但在 javascript 代码中它不起作用。
我还在 Application_BeginRequest 中添加了 Access-Control-Allow-Origin 标头。
我也尝试过使用 axios (axios.post(...)) - 没用。
我收到此错误:由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action '' 的消息
我错过了什么?
thx a-x-i
【问题讨论】:
This SO post 列出了此错误的可能原因。 【参考方案1】:我解决了
在 Javascript 中我添加了这个:
xmlhttp.setRequestHeader("soapAction", "namespace/Interface/Operation");
在我的 wcf 中,我必须在 Application_BeginRequest 中添加它:
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "SoapAction");
所以现在我的 WCF 完美运行了 :)
a-x-i
【讨论】:
以上是关于xmlhttpRequest 调用 wcf-service ActionNotSupported的主要内容,如果未能解决你的问题,请参考以下文章