当我打电话给这个JS:
jQuery.ajax({
type: 'POST',
url: '/renderscooter',
data: { img: imgSrc, deimg: imgDe, newimg: img}
})
.done(function( html ) {
jQuery('#content_illu').css('background-image', 'data:image/png;base64,'+html);
jQuery('#content_illu').css('background-size','auto 737px');
});
我希望在浏览器上显示创建的新图像,但我得到:
414 Request-URI Too Large
我看到图片附带了网址:
http://pg251.inetpsa.com/configure/iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4C....
这对我来说很奇怪。
怎么可以避免这个问题?
图像从zf2 php控制器方法发送回ajax调用,如:
... creation of the image ...
ob_start();
//ImagePng($imgPng, $dstImagePathName);
ImagePng($imgPng);
ImageDestroy($imgPng);
$imageData = ob_get_clean();
$response = $this->getResponse();
$response
->getHeaders()
->addHeaderLine('Content-Transfer-Encoding', 'binary')
->addHeaderLine('Content-Type', 'image/png')
->addHeaderLine('Content-Length', mb_strlen($imageData));
//$response->setContent('url("'.$dstImageName.'")');
$response->setContent(base64_encode($imageData));
return $response;
感谢您的时间。
修改
最后我避免了ajax方法,并使用这种方法: change background-image to other one created dynamically by ajax call script
答案 0 :(得分:0)
假设您正在使用Apache Web Server。在Apache下,有一个可配置的值 LimitRequestLine
。如果要支持更长的请求URI,请将该值更改为大于默认值的值。
来自http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestline:
“此指令设置HTTP请求行上允许的字节数.LimitRequestLine指令允许服务器管理员设置客户端HTTP请求行允许大小的限制。自请求行以来由HTTP方法,URI和协议版本组成,LimitRequestLine指令对服务器上请求允许的请求URI的长度施加限制。服务器需要此值足够大以容纳其任何资源名称,包括可能在GET请求的查询部分中传递的任何信息。“