javascript - 从 servicenow 中的 REST 调用获取 PNG 图像作为响应,响应是垃圾字符

标签 javascript ajax servicenow

我在这里遇到的情况是,我从 servicenow 中的 REST 调用获得 PNG 图像作为响应,响应是垃圾字符,如下所示,我正在编写服务器脚本,它接受响应并转换成一些字符串,这将被返回到客户端 UI 操作脚本以呈现为图像返回到 UI 页面。我找不到任何类似的案例,如果有人遇到过类似情况,请分享。任何帮助将不胜感激

REST 响应:

    IHDRU�  ��bKGD������� IDATx��{\T��� o"r�("r ���J(/���L��f�Syˬcio ��x��T�
    S�$=��JO�GE1 �xA@ T  �\��g���53kX��}? >ʞg�<���ڿ��� �/_V� � �Л���hj A A r������Ro�ݻwS�!� ��%���@�*� � c@�*� � #@�*� � #`�[B A a~DEE5�=44���T�"� �h���P���bԨQ�� �*UA A Z(++Crr2,--��� ++�C' T A A4��۷����nݺ�gϞ8�<z��UO�*� � �x��!� 
    kkk@HHH�z T A A4@nn.rss�m���A A  �Du� � #A � � �  �&����ӧn��M� �  ���zPU^��|�)`�/���u�&vD A DS�:Q�U·����=���.X�Ď� �hj,,,0z�hXXXT* ���������{�p��o5����[�� � ���� ������AMM 233akk�Uo����W���\�{Uy9��^݄�� � �~��!++ ǎ ñcǐ��   �z� TM  ����(�9 o''���dL  k�9YYY��g�@ٱcLz�^X�r� �y��E��Y�� ��r�ͪ�kVx�f��5+��vJ��� � Ƙ1c0f�   < gΜѪ7�A�>TTTp��E�v�xa���7�杧 ��f�SV ���7�^�Y��U/׬���� ���666�t���\�P]Q����E/W��w�^��UOY1\/W�O�-.Z���M�]�Ӹx�k�Y�r�
    KN��Y)..��1����� �/_V@�޽�b@�|��'X�n]S� �h�T�*��R+IZ�@ g7������ c � "**�ޒ
    ������^��I?rb�@��EHE�¢��o��;O/r�ͪ�� ���o����T�vR� �jʸx�k�Y�r�
    KN�ڬ��� �*++�P(���HOO��$ �� R�9..Lz��Y|����;== 6���>O��S ߬z ߼�o<��<s+W�j}��L��ҫ�ӺءBU!��M����� �_aɉ�� ?{��<?%%
    ��y��T ��2��{ �鿴�4��� ] � %�0�*��  �\}l�yz��oV=e�p�\}�� = `�^�vR� ���;K;�{�k�Y�r�
    KN�ڬ�47S�N������͛��lll��� GG�::��? T=��T A�E�= �ߔ�I���% ���KN>s�� ?�~��iQyyyHLLDppp  ͩ2Q�g��"� �'�0��f�SV ��
....truncated since its too long

最佳答案

您正在以二进制形式传递数据...旧的 javascript 无法处理二进制数据。

这是显示 ajax 图像的正确/现代方式。

但检查兼容性...

https://developer.mozilla.org/en-US/docs/Web/API/URL.revokeObjectURL

function showImg(e){
 var img=document.createElement('img');
 img.onload=function(e){
  document.body.appendChild(img);
  window.URL.revokeObjectURL(img.src);//Clear
 };
 img.src=window.URL.createObjectURL(this.response);
}

window.URL=window.URL||window.webkitURL;

var xhr=new XMLHttpRequest;
xhr.open('GET','/path/to/image.png',true);
xhr.responseType='blob';//Blob
xhr.onload=showImg;
xhr.send();

有一种更兼容的方法可以做到这一点

new Uint8Array

但我注意到一些内存泄漏。

如果你愿意,我也可以发布该代码。

关于javascript - 从 servicenow 中的 REST 调用获取 PNG 图像作为响应,响应是垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937925/

相关文章:

javascript - 具有固定不均匀行的 HTML 表格

javascript - 我如何从视频中检测字幕并将其复制到文本区域

javascript - django cms 插件上的动态模型选择字段

javascript - 将点击事件绑定(bind)到通过 AJAX 加载的内容而不进行委托(delegate)?

javascript - 在脚本中使用 ZipFile java 类读取 zip 文件内容

html - ServiceNow 存储和调用滑动脚本

c# - 使用 Service Now API 获取变更管理记录

javascript - 当前元素的 Jquery 属性值

javascript - primefaces 密码控制,按 Enter 键调用 webflow 功能

javascript - 动态包含模板 Angular Directive(指令)