6

我试图在 jquery 中向第三方发送 SOAP 请求,但总是收到此错误:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Problems creating SAAJ object model</faultstring></soap:Fault></soap:Body></soap:Envelope>

我这样做的方式是将几个令牌传递给另一个函数,该函数基于这些令牌创建 SOAP 请求。其中一个令牌是这样的 Html 字符串:

<tr><td width="2" bgcolor="#ffffff"><\/td><td width="1" bgcolor="#d8dbe3"><\/td><td width="2" bgcolor="#ffffff"><\/td><td width="15" bgcolor="#f5f6f8"><\/td><td width="535" bgcolor="#f5f6f8"><table width="535" cellspacing="0" cellpadding="0" border="0" bgcolor="#f5f6f8"><tr><td width="80"><table width="80" height="96" bgcolor="#999999" cellspacing="0" cellpadding="0" border="0" align="center"><tr><td width="80" height="1" colspan="3"><\/td><\/tr><tr><td width="1" bgcolor="#999999"><\/td>....

每当我添加此令牌时,SOAP 请求都会失败。我试图转义这个 html 字符串令牌,SOAP 请求成功,但是整个字符串都被所有转义字符弄乱了,第三方需要这个 html 字符串来呈现模板,所以我无论如何都无法发送转义版本。有什么方法可以安全地传递 html 字符串而不会导致请求崩溃?

4

2 回答 2

8

当无法在服务器端解析soap-request时,通常会出现错误“创建SAAJ 对象模型的问题” 。在服务器上的日志文件中,您可以看到类似

Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '>' (code 62) (expected a name start character)
 at [row,col {unknown-source}]: [18,6]

您将 html 标签传递给肥皂信封,因此转义 html-tags 可能会出现问题。在soap-request 中为此类数据传递BASE64 字符串是一种很好的做法

于 2015-03-17T16:49:50.203 回答
0

请添加一个标题,如“内容类型文本/xml;charset=utf-8”。

于 2019-07-03T02:33:54.147 回答