繁体   English   中英

从ASP.NET Web服务检索XML数据时出现问题

[英]Problem retrieving XML data from an ASP.NET Web service

我试图调用Web服务以从数据库中检索一些XML数据。 如果我使用静态文件(例如:

$.ajax({
    type: "GET",
    url: "test2.xml",
    data: buildXMLDataRequestObject(),
    dataType: "xml",
    success: getXMLDataSucceeded,
    error: getXMLDataFailed
});

但是当我尝试调用Web服务时失败,例如:

$.ajax({
    type: "POST",
    url: "Services/CheckOutService.svc/GetXMLData",
    data: buildXMLDataRequestObject(),
    dataType: "xml",
    success: getXMLDataSucceeded,
    error: getXMLDataFailed
});

我得到的错误是:

“传入的消息具有意外的消息格式'Raw'。该操作的期望消息格式为'Xml','Json'。这可能是因为尚未在绑定上配置WebContentTypeMapper。有关更多信息,请参见WebContentTypeMapper的文档。细节。”

GetXMLData方法如下所示:

// Interface
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
string GetXMLData(XMLDataRequest request);
...
// Implementation
public string GetXMLData(XMLDataRequest request)
{
    request.ShopperId = ShopperId;
    return checkOutManager.GetXMLData(request);
}   

已将GetXMLData方法配置为返回XML,并且Ajax调用将其数据类型设置为XML,因此对于导致错误的原因我非常困惑。

编辑:如果我稍稍更改$ .ajax()调用,以便指定contentType,我将收到此错误:

根级别的数据无效。 第1行,位置1。

我已经尝试了contentType:“ text / xml”和contentType:“ application / xml”,并且都给出了相同的错误。

编辑:昨天(8月30日),我注意到如果省略ajax调用的data参数,该服务调用将成功。 我想关于JSON对象的某些问题会引起问题。 到目前为止,我已经在应用程序的服务器端实现了此功能,但是我打算在有空的时候重新访问它。

我的第一个猜测是内容类型错误。 使用Fiddler或类似工具查看流时会看到什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM