uri从ajax帖子回来太久了

时间:2013-11-18 16:19:57

标签: php jquery ajax

当我打电话给这个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

1 个答案:

答案 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请求的查询部分中传递的任何信息。“