ajax无刷新提交和获取数据方法【汇总】(Ajax+asp+js完结)

原创  2023年2月12日  ofso 未经作者授权,禁止转载

问题:

1、ajax一半方式传参,例如base64位图片天长无法通过url传递,可以使用Json方法

传递页面.js

//
                $.ajax({
                    url: "read-canvas-add-ajax.asp",
                    type: "GET",
                    async: false,
                    //dataType:'json',  // 需要写上
                    data: {"aid":aid,"infor":infor,
                            //"CanvasStr":CanvasStr       
                             }
                    //success: function (msg) {
                        //if (msg.code === 1) {
                            //console.log('提交成功');
                        //} else {
                           //console.log('提交失败,请重试!');
                        //}
                   // }
                })
//

接受页面.asp

//bytecount = Request.TotalBytes
//bytes = Request.BinaryRead(bytecount)

用的request方式获取URL中的变量。

下面的base64图片代码

data:image/png;base64,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"

展开查看

像这种,一般传递方式会出错

使用下面的办法传递.js

//
           $.ajax({
        url: "read-canvas-add-ajax.asp",
        type: 'post',
        dataType: 'json',
        data: {
           CanvasStr : CanvasStr,
        },
        success: function(json) {
         //stuff

        }
    });
//

接受.asp

bytecount = Request.TotalBytes
bytes = Request.BinaryRead(bytecount)
Set stream = Server.CreateObject("ADODB.Stream")
stream.Type = 1 'adTypeBinary
stream.Open()
stream.Write(bytes)
stream.Position = 0
stream.Type = 2 'adTypeText
stream.Charset = "utf-8"
s = stream.ReadText() 'here is your json as a string
stream.Close()
Set stream = nothing

s就是从Json取出来的,就象{"userid":"apple","password":"test123456"}

sketchpad和read-canvas-add-ajax就是长参的实例。

具体方法请看下面的两个文章:

通过ajax发送非常大的base64数据的最有效方法-前端-CSDN问答

asp页面如何接收ajax传过来的json数据 (521u.com)

ajax传参的3种形式_wastingAllTheseTears的博客-CSDN博客_ajax传参

2、如何判断一个方法里面的ajax请求成功了

ajax请求成功,失败处理!_Judy1623的博客-CSDN博客_ajax shownotify();

                    success: function (msg) {
                        if (msg.code === 1) {
                            console.log('提交成功');
                        } else {
                           console.log('提交失败,请重试!');
                        }
                   }

主要看code,msg是这里定义的一个名称,也可以是其他名称。

3、jquery Ajax 不执行回调函数success的原因 - 学无止境2014 - 博客园 (cnblogs.com)

2023-02-1615:42:18

今天才真正弄明白ajax的原理,同时也就明白请求成功,怎么返回判断。

asp后台

image.png

js前台

image.png

这条

image.png

还有这条

image.png

这篇回答让我对ajax顿悟,就是通过Ajax取了后台页面显示的内容,所以这页不要有其他的Html代码内容,只用于response.write。

怎样在Ajax里调用Asp函数并得到返回值?*100分*-CSDN社区(万分感谢

image.png


AJAX基础知识

ajax(Web数据交互方式)_百度百科 (baidu.com)

看这一篇就够了!-Ajax详解_抱着猫睡觉的鱼_的博客-CSDN博客_ajax怎么看

文章上面的是提交数据到后台↑

下面是如何通过后台获取数据↓

ASP实时刷新显示mysql数据_ajax+asp实现无刷新读取数据_法直的博客-CSDN博客


mysite-news-control

mysite-news-control-poseajax

就是提取的实例。