我正在使用XMLHttpRequest从服务器获取图像(从第三方服务器小程序本地运行)
甲简化的代码版本如下所示.
图像以JPEG格式返回,返回的标题显示"content-type = image/jpg".我可以通过Firebug for Firefox查看信息.
但是我有一个可怕的时间能够在网页上显示实际图像,因为它是从服务器返回的图像数据而不是图像位置的uri.
从返回的数据中显示此图像的正确方法是什么?我应该使用<span>标签,<img>标签还是<magical-show-image-from-data>标签?
function getXML(url, postData, requestStateChangeHandler){
if(window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//Code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = requestStateChangeHandler;
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.setRequestHeader('Cache-Control', 'no-cache');
xmlhttp.send(postData);
}
function requestStateChangeHandler(){
if (xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
document.getElementById('results').innerHTML = xmlhttp.responseText;
}
else
dump("Error loading page\n");
}
}
Run Code Online (Sandbox Code Playgroud) 我在客户端,javascript环境中.我有一个GUID字符串格式e8b75aff-3422-4529-8a6a-15b33e674f48,我需要它在一个Base64字符串中/1q36CI0KUWKahWzPmdPSA== 如何转换它?
谢谢.
有没有办法在html5本地存储中存储html,javascript和css文件?
我想让我的webapplication更快!
谢谢
我正在开发一个phonegap应用程序并使用该navigator.getPicture方法来获取图像.
我得到这张照片的方式是:
navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.FILE_URI });
function onSuccess(imageURI) {
var image = document.getElementById('myImage');
image.src = imageURI;
}
Run Code Online (Sandbox Code Playgroud)
就像phonegap doc中的例子一样.
我希望能够使用imageURI,然后将其转换为图像数据,以便以后上传.(我不想使用phonegap的FileTransfer)
到目前为止,我已尝试用JavaScript获取图像数据?并且你怎么能编码在JavaScript字符串为Base64?
当我尝试以下,
function onSuccess(imageURI) {
getBase64Image(imageURI);
}
function getBase64Image(img) {
// Create an empty canvas element
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
// Copy the image contents to the canvas
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
// Get the data-URL formatted image
// Firefox supports PNG …Run Code Online (Sandbox Code Playgroud) 知道为什么XMLHttpRequest使用正确的凭据在Pebble JS FrameworkAndroid上的基本身份验证失败但在iOS中有效吗?
完全相同的代码,类似于:
var req = new XMLHttpRequest();
req.open(method, url, true, user, pass);
req.send(data);
req.onreadystatechange = function() { ... }
Run Code Online (Sandbox Code Playgroud)
从Android Pebble应用程序返回401,但在iOS中正确验证.
我们在后端 (PHP) 中使用dompdf将 HTML 转换为 PDF 。dompdf 生成的输出是 Base64 编码的
$output = $dompdf->output();
base64_encode($output);
Run Code Online (Sandbox Code Playgroud)
这个 Base64 编码的内容作为文件保存在服务器上。当我们像这样解码这个文件内容时:
cat /tmp/55acbaa9600f4 | base64 -D > test.pdf
Run Code Online (Sandbox Code Playgroud)
我们得到一个合适的 PDF 文件。
但是当我们将 Base64 内容作为 JSON 对象内的字符串值传输到客户端时(服务器提供了 RESTful API...):
{
"file_data": "...the base64 string..."
}
Run Code Online (Sandbox Code Playgroud)
并使用 atob() 对其进行解码,然后创建一个 Blob 对象以稍后下载文件,PDF 始终为“空”/损坏。
$scope.downloadFileData = function(doc) {
DocumentService.getFileData(doc).then(function(data) {
var decodedFileData = atob(data.file_data);
var file = new Blob([decodedFileData], { type: doc.file_type });
saveAs(file, doc.title + '.' + doc.extension);
});
};
Run Code Online (Sandbox Code Playgroud)
当我们记录解码的内容时,似乎内容被“破坏”了,因为几个符号与我们使用base64 -D在服务器上解码内容时不一样。
当我们编码/解码简单文本/普通文档的内容时,它按预期工作。但是所有二进制(或非 ASCII 格式)都不起作用。 …
编辑:考虑到dennmat的建议,我已经设法将我的图像获取脚本简化为几行,使用Image():
window.onload = function(){
var img;
capture_canvas = document.createElement('canvas');
capture_canvas.width = 1000;
capture_canvas.height = 1000;
document.documentElement.appendChild(capture_canvas);
img = new Image();
img.crossOrigin = "Anonymous";
img.src = "http://www.shangalulu.com/get_resource_no_64.php?url=http://www.shangalulu.com/users/1196739508/post/41-1330377498/41-1330377498_thumb.jpg";
img.onload = function() {
var context, canvas_img;
context = capture_canvas.getContext('2d');
context.drawImage(img, 0, 0, 255, 255);
canvas_img = context.getImageData(0, 0, capture_canvas.width, capture_canvas.height);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这适用于Chrome和Firefox,但这不适用于IE9.以下链接中提到的解决方案似乎不适用于这种情况.未捕获错误:SECURITY_ERR:DOM异常18当我尝试设置cookie时
Image()IE9是否支持cors功能?
我遇到了一个小问题.
上面的图像实际上是一个包含标准png标题的文件,后跟255个字节,从255变为0(两次).我们的想法是了解Internet Explorer 9如何通过AJAX请求处理接收二进制数据.
所以,这是我的问题:我注意到当我在客户端上收到一个大于127的字节时,该值默认为253.有没有办法让IE用正确的值读取扩展字节?
需要注意以下几点:
1)我们不使用任何类型的JavaScript框架.这是一个要求,我们只使用裸骨javascript.
2)这个实验的目的是制作一个干净的方式来获取图像,这样我就可以把它放在画布上而不会弄乱它.有时这些图像来自我们的外部托管图像服务器,有时它将来自我们无法控制的另一台主机.
下面是我的测试脚本:
var request;
window.onload = function(){
request = new XMLHttpRequest();
if (window.XDomainRequest) {
request = new …Run Code Online (Sandbox Code Playgroud) 我需要使用 javascript 设置 cookie,我使用以下命令执行此操作:
document.cookie = name+"="+value;
Run Code Online (Sandbox Code Playgroud)
我的问题是这value是一个字符串,它可以包含任何 unicode 字符。
是否有一个函数可以自动替换特殊字符(例如;) - 如果没有,哪些字符是被禁止的?
像“encodeURIComponent()”这样的用于获取参数的函数将是完美的
我发现这个代码可以使用setRequestheader和Ajax进行身份验证.
this.xmlDoc.setRequestHeader('Authorization','Basic ' + Base64.encode("User:Password"));
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道Ajax和Base64似乎不是我可以引用的类或方法.这种基本加密有替代方案吗?或者我可以从Javascript调用的simular编码函数?
谢谢 !
我目前在我的应用程序中使用与节点 js 的反应。
我试图从文本文件中读取,当我尝试不同的事情时会得到不同的错误。通过研究,从文件读取的最简单路径是使用“fs”,因此我将发布我尝试从本地文件(客户端)读取的两种方法。
如果有人可以帮助解决我的错误,或者甚至向我展示从本地文件中读取的不同方式,我将不胜感激!
import React ...
import { readFile, readFileSync } from 'fs';
// other imports
class Background extends Component {
// my constructor
componentDidMount() {
this.loadMe();
}
loadMe() {
var file = './read_file';
/* WAY 1: Asynchronously using readFile */
readFile(file, function(err, data) {
if (err) { console.log(err) }
console.log(data);
}
/* WAY 2: Synchronously using readFileSync */
var data = readFileSync(file);
console.log(data);
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我不会同时运行两种方式。我还基本上从其他堆栈溢出答案和一些在线教程中复制了代码。我查看了FileReader但无法使其工作。
我目前收到的错误:TypeError: Object(...) is not a function
指向var …