jQuery ajax似乎改变了发送到coldfusion服务器的SVG数据

发布时间:2020-02-21 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了jQuery ajax似乎改变了发送到coldfusion服务器的SVG数据脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用$.ajax()将字符串发送到coldfusion服务器,并将其存储在表中.当我稍后查询并尝试使用该数据时,我收到错误; “null Enclosed Exception:3字节UTF-8序列的字节2无效”.

首先,我从DOM中获取SVG并将其发送到操作页面.它应该只是一个字符串,对吗?

var lclSVG = $('#myDiv')[0].innerHTML; // SVG Code (XML?)
$.ajax({
  url: "myAction.cfm",type: "POST",data: ({myInfo: lclSVG}),});

在myAction.cfm页面上,我将数据更新为表格.

<CFQUERY NAME="postSVG">
  UPDATE myTable
  SET svg = '#form.myInfo#' 
  WHERE  ID = 1
</CFQUERY>

SVG2PNG.cfm:当我尝试查询并使用svg数据时,我收到错误“3字节UTF-8序列的无效字节2”.错误发生在.transcode行上.

<CFQUERY NAME="getSVG">
  SELECT svg
  FROM myTable
  WHERE  ordID = 1
</CFQUERY>
<cfset svg = getSVG.svg>
<cfscript>
  transcoder = createObject("java","org.apache.batik.transcoder.image.PNGTranscoder").init();
  inputStream = createObject("java","java.io.StringBufferInputStream").init(svg);
  input = createObject("java","org.apache.batik.transcoder.TranscoderInput").init(inputStream);
  OutFile = expandPath("myTest2.png");
  outputStream=CreateObject("java","java.io.FileOutputStream").init(OutFile);
  output=CreateObject("java","org.apache.batik.transcoder.TranscoderOutput").init(outputStream);
  transcoder.transcode(input,output);
  outputStream.close();
</cfscript>

我已经多次使用jQuery的ajax方法而没有太大困难.我在这里做错了,我似乎无法掌握它……

解决方法

我没有使用过您使用过的框架,但是设置svg变量的行应该使用getSVG查询吗?
<cfset svg = getSVG.svg>

总结

以上是脚本之家为你收集整理的jQuery ajax似乎改变了发送到coldfusion服务器的SVG数据全部内容,希望文章能够帮你解决jQuery ajax似乎改变了发送到coldfusion服务器的SVG数据所遇到的程序开发问题。

其他人正在看

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
标签: