javascript 肥皂调用 ASP.NET Web 服务时出错

发布于 2024-12-15 14:23:19 字数 453 浏览 0 评论 0原文

我有一个正在运行的 ASP.Net 测试 Web 服务,但我不断收到 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 服务,它将单个参数作为字符串并将其返回给客户端。请帮忙!

代码链接

I have a working ASP.Net test web service, but I keep getting 500 errors as:

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

when I call it with javascript.

It is a simple web service that takes a single parameter as a string and returns it to the client. Please help!

link to code here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十年九夏 2024-12-22 14:23:19

对于那些可能有帮助的人来说,问题在于正确设置标头中的 SOAPAction:

$.ajax({
类型:“帖子”,
网址:目标,
内容类型:“文本/xml”,
数据:soapBody,
数据类型:“xml”,
处理数据:假,
beforeSend: 函数( xhr ){
xhr.setRequestHeader(
“肥皂行动”,
“http://blahblah.com/Services/MethodName”
);

},
....

For those of you who this might help, the issue was setting the SOAPAction in teh header correctly:

$.ajax({
type: "post",
url: target,
contentType: "text/xml",
data: soapBody,
dataType: "xml",
processData: false,
beforeSend: function( xhr ){
xhr.setRequestHeader(
"SOAPAction",
"http://blahblah.com/Services/MethodName"
);

},
....

铃予 2024-12-22 14:23:19

确保您的 mess 变量不包含 GET 样式的查询字符串,例如 '?a=1&b=2'。您需要以 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",
        });

Make sure that your mess variable doesn't contain GET-style query string like '?a=1&b=2'. You need to send it in POST format, for example in JSON. Try to change contentType to 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",
        });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文