ajax 请求多张图片数据

需求分析:

实现对网页上的图片进行显示。由于读取图片名称相同,而图片内容已发生改变。采用网上所用的要求浏览器不缓存的操作不生效

<META http-equiv="Pragma" CONTENT="no-cache">
    <META http-equiv="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META http-equiv="expires" CONTENT="0">
    <meta charset="utf-8">
    <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
    <META HTTP-EQUIV="expires" CONTENT="0"> 

后面采用ajax的方式请求数据,直接从后端将图片内容读取并返回给前端,从而实现图片数据的最新显示

前端 ajax请求:

        $.ajax({
            url: ‘index.php‘,
            type: ‘POST‘,
            dataType: ‘json‘,
            data: {mode: ‘<?=$Mode?>‘,id:‘<?=$idVal;?>‘},
        })
        .success(function(data){
            // console.log(data);
            $.each(data,function(name,value){
                // console.log(name);
                // console.log(value);
                $("#sm_image"+name).attr("src","data:image/png;base64,"+value);

            })

        })
        .done(function(data) {
            console.log("success");
            // $("sm_image").attr("src","data:image/png;base64,"+data);
            // echo
        })
        .fail(function(data) {
            console.log(data);
            console.log("error");
        })
        .always(function() {
            console.log("complete");
        });
        

后台php解析并返回:

<?php 

if($_POST) {

   switch ($_POST[‘mode‘]) {
       case 1:
            // print_r($_POST[‘id‘]);
            $idArr =  explode(",", $_POST[‘id‘]);

            $jsonStr = "{";

            for ($i=0; $i <count($idArr) ; $i++) {
               $img = base64_encode(file_get_contents("/web/image/image_id".$idArr[$i].".png"));
                $jsonStr .= "\"".$idArr[$i]."\":\"$img\",";
            }

            $jsonStr = substr($jsonStr,0,-1);

            $jsonStr .= "}";
            echo $jsonStr;
           break;
       case 2:
           $id = $_POST[‘id‘];
           $img = base64_encode(file_get_contents("/web/image/image_id".$id.".png"));
           echo  ‘{"‘.$id.‘":"‘.$img.‘"}‘; //读取图片数据并作base64编码
           break;
       default:
           break;

    } 

}

?>
时间: 2024-11-06 03:38:21

ajax 请求多张图片数据的相关文章

ajax请求获取的数据无法赋值给全局变量问题总结

一.总结: 1.问题描述: 今天做项目遇到在用表单显示详细信息的过程中ajax请求获取的数据无法赋值给全局变量的情况,从列表页面进入详情页,在详情页面被渲染了之后就会调用js文件里的接口向服务器请求数据,除了详情页面被加载之后需要向服务器发送ajax请求,在详情页面还有几个表单控件的属性需要去请求服务器获取实际项目中要求要显示的数据. 如下代码,直接在ajax请求中改变表单控件的值,避开了给全局变量赋值. 给全局变量赋值的解决办法,给ajax请求设置async为false,表示请求为同步请求:

React 中的 AJAX 请求:获取数据的方法

React 中的 AJAX 请求:获取数据的方法 React 只是使用 props 和 state 两处的数据进行组件渲染. 因此,想要使用来自服务端的数据,必须将数据放入组件的 props 或 state 中. 首先引入 axios. 1.`import axios from 'axios';` constructor 方法非常标准,调用 super,然后初始化 state,设置一个空的 posts 数 传入新的 posts 数组,使用 this.setState 方法更新组件状态.这会导致重

Ajax请求返回Json数据

介绍一下用Ajax向服务器请求数据的方法,以及对于返回的Json数据的使用. 1 $.ajax({ 2 type:"post", 3 async:false, 4 url: ******** 5 data:{"province":$("#provice").val(), 6 "city":$("#city").val(), 7 "area":$("#area").va

使用js+Ajax请求API接口数据-带请求头方式

先上代码: <script type="text/javascript"> function zLoginCheck() { var Account = 'admin; var Password = 'DC483E80A7A0BD9EF71D8CF973673924'; var str = { Account: Account, Password: Password } $.ajax({ type: "POST", url: '/Handle/zLogi

ajax请求返回的数据无法用选择器绑定事件

今天在写一个项目的时候突然发现一个很怪异的问题,问题是这样的: 当我使用ajax去后台请求数据就将后台拼接生成的html代码直接添加到页面中了,但是在后续操作中发现,生成的html代码绑定的click不起作用,但是换成onclick="click()"的话就可以了. 出现的原因是: 因为先后顺序的关系啊~用AJAX加载是异步加载这个应该很清楚吧~既然是异步加载那么就是非同步的,也就是说当你的整个页面加载完成后$('.div').click(function(){.....});这句根本

ajax请求获取到数据,但是仍然不能触发success方法

这个问题消耗了我的很多时间. 原来是因为.php文件中的 echo echo json_encode($k);  后面少加了个exit; 因为echo echo json_encode($k); 之后还是有其他内容的,所以ajax获取到除了json格式以外的数据. 这个时候会触发error方法: error: function(XMLHttpRequest, textStatus, errorThrown){ alert(XMLHttpRequest.status); alert(XMLHttp

springmvc4.0配置ajax请求json格式数据

1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring-servlet.xml中相关配置: //命名空间加入mvc: xmlns:mvc="http://www.springframework.org/schema/mvc" //xsi:schemaLocation中补充: http://www.springframework.org/sche

ajax请求获取实时数据

<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <script src="WebUI/js/clienthint.js"></script> &l

ajax请求得到后台数据,前台页面不用拼接 “字符串和HTML表格标签”,使用方便模板然后clone,显示表格

<%@page import="java.util.ArrayList"%><%@page import="java.util.List"%><%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@ taglib uri="htt