我试图将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字符串而不会崩溃请求?
答案 0 :(得分:5)
错误&#34;创建SAAJ对象模型的问题&#34;通常在无法在服务器端解析 soap-request 时发生。 在服务器上的日志文件中,您可以看到类似
的内容Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '>' (code 62) (expected a name start character)
at [row,col {unknown-source}]: [18,6]
您将html标记传递到soap信封,因此问题可以通过转义html标记。在SOAP-request中为这种数据传递BASE64字符串是一种很好的做法
答案 1 :(得分:0)
请添加标题,例如tihs“内容类型text / xml; charset = utf-8”。