查看: 570|回复: 6

[问与答] 各位大拿,jqurry ajax ,在asp数据如何接收?

[复制链接]
老李 发表于 2022-11-21 11:46:03 | 显示全部楼层 |阅读模式
前端:一定要用post方法,因为数据比较大

$("button").click(function(){
    $.post("get.asp",
    {
        g_name:"王大拿",
        g_grad:"三年级"
    },
    function(data,status){
        alert("数据: \n" + data + "\n状态: " + status);
    });
});

后端get.asp中, g_name值怎么接收? 我下面的方法得不到数据

<%   
g_name=request("g_name")
response.write g_name

%>

xuanxiao 发表于 2022-11-21 14:11:55 | 显示全部楼层
数据比较大是什么意思?


  1. $.ajax({
  2.     type: "GET",
  3.     url: "page.asp",
  4.     dataType:'json',
  5.     data: {id:1001},//也可以是字符串链接"id=1001",建议用对象
  6.     success: function(data){
  7.         console.log("返回的数据: " + data );
  8.     }
  9. });
复制代码


参考代码 你试试
 楼主| 老李 发表于 2022-11-21 15:45:07 | 显示全部楼层
感谢回复!
我在弄一个头像剪裁工具crooperjs + ajax 的头像上传功能
头像剪裁下来,生成base64的数据,数据比较大,有时很多兆!! 用过get方法,获取的数据不全,生成的图片是马赛克的不全图像!!
所以必须得采用 post 方法
现在调试完成两步
1、前端截图没问题,生成bas64 没问题
2、后端,将base64de数据前端打印出来,直接放在后端,生成图片没问题
现在卡在, 如何将前端得base64数据,通过ajax 上传后端! 后端获取到前面base 64得值!! 获取到了,整个就跑通了!
 楼主| 老李 发表于 2022-11-21 15:55:22 | 显示全部楼层
  1. <!DOCTYPE html>

  2. <html lang="en">

  3.     <head>
  4.        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5.         <title>基于cropper.js的图片裁剪</title>
  6.         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  7.         <meta name="format-detection" content="telephone=no">
  8.         <link rel="stylesheet" href="css/cropper.min.css">
  9.         <link rel="stylesheet" href="css/ImgCropping.css">
  10.         <script src="js/jquery-2.1.1.js"></script>
  11.         <script src="js/cropper.min.js"></script>

  12.         <style>
  13.             .str {
  14.                 width: 150px;
  15.                 height: 200px;
  16.                 border: solid 1px #e3e3e3;
  17.                 padding: 5px;
  18.                 margin-top: 10px
  19.             }
  20.         </style>
  21.         
  22.     </head>

  23.     <body>
  24.          <label title="上传图片" for="chooseImg" class="l-btn choose-btn">
  25.          <input type="file" accept="image/jpg,image/jpeg,image/png" name="file" id="chooseImg" class="hidden" onchange="selectImg(this)">
  26.                     选择图片
  27.          </label>
  28.         <div class="str">
  29.             <img id="finalImg" src="" width="100%">
  30.         </div>
  31.       

  32.         <!--图片裁剪框 start-->
  33.         <div style="display: none" class="tailoring-container">
  34.             <div class="black-cloth" onclick="closeTailor(this)"></div>
  35.             <div class="tailoring-content">
  36.                 <div class="tailoring-content-one">

  37.                     <div class="close-tailoring" onclick="closeTailor(this)">×</div>
  38.                 </div>

  39.                 <div class="tailoring-content-two">
  40.                     <div class="tailoring-box-parcel">
  41.                         <img id="tailoringImg">
  42.                     </div>
  43.                     <div class="preview-box-parcel">
  44.                         <p>图片预览:</p>
  45.                         <div class="square previewImg"></div>
  46.                         <!--  <div class="circular previewImg"></div>-->
  47.                     </div>
  48.                 </div>

  49.                 <div class="tailoring-content-three">
  50.                     <button class="l-btn cropper-reset-btn">复位</button>
  51.                     <button class="l-btn cropper-rotate-btn">旋转</button>
  52.                     <button class="l-btn cropper-scaleX-btn">换向</button>
  53.                     <button class="l-btn sureCut" id="sureCut">确定</button>
  54.                 </div>
  55.             </div>
  56.         </div>
  57.         <!--图片裁剪框 end-->

  58.    
  59.         <script src="js/cropper.min.js"></script>
  60.            <script type="text/javascript">  
  61.     //弹出框水平垂直居中  
  62.     (window.onresize = function() {  
  63.         var win_height = $(window).height();  
  64.         var win_width = $(window).width();  
  65.         if (win_width <= 768) {  
  66.             $(".tailoring-content").css(  
  67.                     {  
  68.                         "top" : (win_height - $(".tailoring-content")  
  69.                                 .outerHeight()) / 2,  
  70.                         "left" : 0  
  71.                     });  
  72.         } else {  
  73.             $(".tailoring-content").css(  
  74.                     {  
  75.                         "top" : (win_height - $(".tailoring-content")  
  76.                                 .outerHeight()) / 2,  
  77.                         "left" : (win_width - $(".tailoring-content")  
  78.                                 .outerWidth()) / 2  
  79.                     });  
  80.         }  
  81.     })();  
  82.       
  83.     // 选择文件触发事件  
  84.     function selectImg(file) {  
  85.         //文件为空,返回  
  86.         if (!file.files || !file.files[0]) {  
  87.             return;  
  88.         }  
  89.         $(".tailoring-container").toggle();  
  90.         var reader = new FileReader();  
  91.         reader.onload = function(evt) {  
  92.             var replaceSrc = evt.target.result;  
  93.             // 更换cropper的图片  
  94.             $('#tailoringImg').cropper('replace', replaceSrc, false);// 默认false,适应高度,不失真  
  95.         }  
  96.         reader.readAsDataURL(file.files[0]);  
  97.     }  
  98.     // cropper图片裁剪  
  99.     $('#tailoringImg').cropper({  
  100.         aspectRatio : 5 / 7,// 默认比例  
  101.         preview : '.previewImg',// 预览视图  
  102.         guides : false, // 裁剪框的虚线(九宫格)  
  103.         autoCropArea : 0.8, // 0-1之间的数值,定义自动剪裁区域的大小,默认0.8  
  104.         movable : false, // 是否允许移动图片  
  105.         dragCrop : true, // 是否允许移除当前的剪裁框,并通过拖动来新建一个剪裁框区域  
  106.         movable : true, // 是否允许移动剪裁框  
  107.         resizable : true, // 是否允许改变裁剪框的大小  
  108.         zoomable : false, // 是否允许缩放图片大小  
  109.         mouseWheelZoom : false, // 是否允许通过鼠标滚轮来缩放图片  
  110.         touchDragZoom : true, // 是否允许通过触摸移动来缩放图片  
  111.         rotatable : true, // 是否允许旋转图片  
  112.         crop : function(e) {  
  113.             // 输出结果数据裁剪图像。  
  114.         }  
  115.     });  
  116.     // 旋转  
  117.     $(".cropper-rotate-btn").on("click", function() {  
  118.         $('#tailoringImg').cropper("rotate", 45);  
  119.     });  
  120.     // 复位  
  121.     $(".cropper-reset-btn").on("click", function() {  
  122.         $('#tailoringImg').cropper("reset");  
  123.     });  
  124.     // 换向  
  125.     var flagX = true;  
  126.     $(".cropper-scaleX-btn").on("click", function() {  
  127.         if (flagX) {  
  128.             $('#tailoringImg').cropper("scaleX", -1);  
  129.             flagX = false;  
  130.         } else {  
  131.             $('#tailoringImg').cropper("scaleX", 1);  
  132.             flagX = true;  
  133.         }  
  134.         flagX != flagX;  
  135.     });  
  136.       
  137.     // 确定按钮点击事件  
  138.     $("#sureCut").on("click", function() {  
  139.         if ($("#tailoringImg").attr("src") == null) {  
  140.             return false;  
  141.         } else {  
  142.             var cas = $('#tailoringImg').cropper('getCroppedCanvas');// 获取被裁剪后的canvas
  143.                         //console.log(cas);   
  144.                        
  145.             var base64 = cas.toDataURL('image/jpeg'); // 转换为base64  
  146.                         //console.log(base64);  
  147.       
  148.             $("#finalImg").prop("src", base64);// 显示图片
  149.                         //console.log(encodeURIComponent(base64));  
  150.             uploadFile(encodeURIComponent(base64))//编码后上传服务器  
  151.                        
  152.             closeTailor();// 关闭裁剪框  
  153.             }  
  154.         });  
  155.       
  156.         // 关闭裁剪框  
  157.         function closeTailor() {  
  158.             $(".tailoring-container").toggle();  
  159.         }  
  160.                
  161.         function uploadFile(file){
  162.             $.ajax({
  163.                 url:"save_pic.asp",
  164.                 data:"picture=" + file,
  165.                 dataType:"json",
  166.                 type:"post",
  167.             processData: false, // 告诉jQuery不要去处理发送的数据
  168.             //contentType: application/json, // 告诉jQuery不要去设置Content-Type请求头
  169.                 success:function(data,status){
  170.                         alert("数据: \n" + data + "\n状态: " + status);
  171.                         }
  172.                 ,
  173.                 error:function(xhr){
  174.                         alert("错误提示: " + xhr.status + " " + xhr.statusText);
  175.                         }
  176.                 })
  177.                 }

  178.       
  179.     </script>  

  180.     </body>

  181. </html>
复制代码
 楼主| 老李 发表于 2022-11-21 15:57:39 | 显示全部楼层
本帖最后由 老李 于 2022-11-21 15:59 编辑

  1. <%

  2. '
  3. Dim Subfolder,picture,path

  4. Subfolder=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now()) ''生成当天的子文件夹的名称



  5. picture=request("picture")
  6. 'response.Write"pitcture_1<br>"&picture&"pic_name="&pic_name
  7. picture=URLDecoder(picture)
  8. 'response.Write "pitcture_Urldecoder<br>"&picture&"<br>"

  9. picture=replace(picture,"data:image/jpeg;base64,","")
  10. 'response.Write "pitcture_nobase64<br>"&picture&"<br>"
  11. '
  12. path=Subfolder&".jpg"
  13. response.Write picture
  14. dim xmlstr
  15. xmlstr="<data>"&picture&"</data>"
  16. Dim xml : Set xml=Server.CreateObject("MSXML2.DOMDocument")
  17. Dim stm : Set stm=Server.CreateObject("ADODB.Stream")
  18. xml.resolveExternals=False
  19. xml.loadxml(xmlstr)
  20. xml.documentElement.setAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
  21. xml.documentElement.dataType = "bin.base64"
  22. stm.Type=1 'adTypeBinary
  23. stm.Open
  24. stm.Write xml.documentElement.nodeTypedValue
  25. stm.SaveToFile Server.MapPath(path)
  26. stm.Close
  27. Set xml=Nothing
  28. Set stm=Nothing
  29. response.Write path


  30. FUNCTION URLDecoder(str)
  31.     Dim objScript
  32.     Set objScript = Server.CreateObject("ScriptControl")
  33.     objScript.Language = "JavaScript"
  34.     URLDecoder = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))")
  35.     Set objScript = NOTHING
  36. END FUNCTION


  37. 'Response.Write "{""state"":""1"",""msg"":""小时处"",""Ajax"":"""&picture&"""}"
  38. 'response.Write "{state:""1"",msg:""车公告"",picture="""&picture&"""}"


  39. %>
复制代码
 楼主| 老李 发表于 2022-11-21 16:02:09 | 显示全部楼层
可以下载附件
直接在上边调试!!

cooperjs头像上传.zip

68.55 KB, 下载次数: 1, 下载积分: 威望 1 个

xuanxiao 发表于 2022-11-22 13:15:04 | 显示全部楼层
H5上传源码ASP版
http://bbs.ttasp.com/thread-9039-1-1.html
(出处: 天天ASP家园)

就是一个普通的传图功能,这里非常详细了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号