问 如何在html页面动态生成图片然后分享至微博?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

问 如何在html页面动态生成图片然后分享至微博?

2016-05-30 13:21:07 2102 1

如题,需求:
我想要用户在点击页面上某个按钮后将页面里某个动态生成的DIV元素(包含用户相关信息)转为图片,然后分享至微博。
我的做法是这样的:

//html2canvas是html2canvas类库里的一个方法

var picURL;
html2canvas(document.getElementById("share"), {
                        allowTaint: true,
                        taintTest: false,
                        onrendered: function (canvas) {
                            var imgUrl = canvas.toDataURL();
                            var newImg = document.createElement("img");
                            newImg.src = imgUrl;
                            picURL= imgUrl;
                            document.body.appendChild(newImg);//测试用
                        }
                    });

$("#link").attr("href","http://service.weibo.com/share/share.php?title=&url="+document.location+"&pic="+picURL).click();
结果浏览器显示400 bad request;
我看了下img的url

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAl4AAAE8CAYAAAAR9b9KAAAgAElEQVR4Xux9B5wdZdn9mXLv3bs9ye5mN72
//后面省略六七百行。。。

我猜想可能原因有:
1 url太长
2 图片实际在客户端本地,URL传入分享参数里无效。

那么结果浏览器显示400 bad request的原因是什么?怎样解决这个需求呢?

取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:20:24

    首先,Get请求是把数据放置到了URL里面,那么浏览器对于URL的长度本身是有个限制的(不同浏览器在这个长度上大同小异),导致服务器反馈给你一个400(服务器无法理解该请求)。
    个人对于这个问题的解决思路是,创建一个服务后端,通过AJAX技术,将生成出来的图片上传到服务器上储存为静态文件(文件名什么的可以根据时间啊、用户名啊之类的进行区分),然后将服务器上的图片地址作为POST请求的返回值,用一个json返回回来。
    我刚刚简单看了一下新浪微博的分享接口,如果我没看错的话,分享图片是可以直接放置图片的URL的,题主可以研究一下这个思路的可行性。

    0 0
相关问答

1

回答

html5页面用定义两个文档声明类型吗?

2016-06-01 20:01:08 1791浏览量 回答数 1

1

回答

html5页面用定义两个文档声明类型吗?

2016-05-27 14:38:02 1579浏览量 回答数 1

1

回答

在HTML中,表示页面背景的是<body bgcolor=>。这种说法对吗?

2021-11-22 23:12:17 377浏览量 回答数 1

1

回答

在HTML中,表示页面背景的是哪个呢?

2021-10-29 20:20:14 163浏览量 回答数 1

1

回答

HTML-更改\更新页面内容而无需刷新\重新加载页面?mysql

2020-05-17 11:39:30 299浏览量 回答数 1

2

回答

html 跳转页面 js代码怎么写

2018-05-10 19:59:58 1074浏览量 回答数 2

1

回答

HTML5 手机页面 输入表单被键盘遮挡住了

2016-06-07 09:35:21 2777浏览量 回答数 1

3

回答

jQuery如何获取HTML页面里的一些文本?

2016-06-02 17:09:07 2209浏览量 回答数 3

1

回答

asp,net 如何读取html文件并显示在页面上?html文件地址是从数据库查询得到的?

2016-03-13 08:23:40 2662浏览量 回答数 1

1

回答

HTML设置页面内部的特定目标的链接

2016-03-13 13:15:29 1903浏览量 回答数 1
2709
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载