调用asp.net Web服务的javascript soap错误

时间:2011-11-15 20:56:18

标签: javascript asp.net soap

我有一个有效的ASP.Net测试网络服务,但我一直得到500个错误:

"System.InvalidOperationException: Request format is invalid: text/xml.
   at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
"

当我用javascript调用它时。

这是一个简单的Web服务,它将单个参数作为字符串并将其返回给客户端。请帮忙!

link to code here

2 个答案:

答案 0 :(得分:1)

对于那些可能有所帮助的人,问题是正确设置了标头中的SOAPAction:

$。AJAX({       类型:“post”,       网址:目标,       contentType:“text / xml”,       数据:soapBody,       dataType:“xml”,       processData:false,       beforeSend:function(xhr){          的 xhr.setRequestHeader(             “SOAPAction的”,             “http://blahblah.com/Services/MethodName”          );       }, ....

答案 1 :(得分:0)

确保您的mess变量不包含像'?a=1&b=2'这样的GET样式的查询字符串。您需要以POST格式发送它,例如在JSON中。尝试将contentType更改为contentType: "application/json; charset=utf-8"

$.ajax({
                url: service,
                type: "POST",
                dataType: "xml",
                data: '{key: value}',
                complete: endTest,
                error: processError,
                contentType: "application/json; charset=utf-8",
        });