问题:
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 = nothings就是从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后台

js前台

这条

还有这条

这篇回答让我对ajax顿悟,就是通过Ajax取了后台页面显示的内容,所以这页不要有其他的Html代码内容,只用于response.write。
怎样在Ajax里调用Asp函数并得到返回值?*100分*-CSDN社区(万分感谢
)

AJAX基础知识
ajax(Web数据交互方式)_百度百科 (baidu.com)
看这一篇就够了!-Ajax详解_抱着猫睡觉的鱼_的博客-CSDN博客_ajax怎么看
文章上面的是提交数据到后台↑
下面是如何通过后台获取数据↓
ASP实时刷新显示mysql数据_ajax+asp实现无刷新读取数据_法直的博客-CSDN博客
mysite-news-control
和
mysite-news-control-poseajax
就是提取的实例。