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的主要内容,如果未能解决你的问题,请参考以下文章

从XMLHttpRequest调用时进行测试

XmlHttpRequest.onload未调用

xmlhttpRequest 调用 wcf-service ActionNotSupported

XMLHttpRequest之status

PHP 测试是否从XMLHttpRequest调用

Nuxt Axios 访问 XMLHttpRequest 错误 - 不从源调用 .NET webAPi