我使用这个代码作为引用,当我得到QR y的结果时,把它发送给一个变量,我试着去做,但是没有得到结果,当我想在https://www.itsolutionstuff.com/post/jquery-html5-qr-code-scanner-using-instascan-js-exampleexample.html中发送一个函数时,我从来没有得到过响应结果。
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="../Scripts/jquery-3.3.1.min.js"></script>
<script src="assets/js/instascan.min.js"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<video id="preview" class="col-lg-12"></video>
<script type="text/javascript">
let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
scanner.addListener('scan', function (content) {
var test = content.toString(); //here i get the variable
alert(test);
<%=SendToDB(content)%>;
});
Instascan.Camera.getCameras().then(function (cameras) {
if (cameras.length > 0) {
scanner.start(cameras[0]);
} else {
console.error('There is no camera');
}
}).catch(function (e) {
console.error(e);
});
</script>
</div>
</div>
</div>
</asp:Content>现在在代码背后,我有类似这样的东西
public void SendToDB(string content)
{
string variable = content;
//here I send it to the database
}发布于 2021-03-10 06:13:50
我知道这是一个古老的问题,但我也在为这个问题而苦苦挣扎,所以我想给其他人一个答案。尝试将您的html代码更改为:
<script type="text/javascript">
let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
scanner.addListener('scan', function (content) {
var test = content.toString(); //here i get the variable
alert(test);
var options = {};
options.url = "Default.aspx/SendToDB";
options.type = "POST";
options.data = JSON.stringify({ content });
options.dataType = "json";
options.contentType = "application/json";
options.success = function (result) { };
options.error = function (err) { };
$.ajax(options);
});
Instascan.Camera.getCameras().then(function (cameras) {
if (cameras.length > 0) {
scanner.start(cameras[0]);
} else {
console.error('There is no camera');
}
}).catch(function (e) {
console.error(e);
});
</script>这里重要的是"options.url = "Default.aspx/SendToDB";“。如果页面的名称不是Default.aspx,则需要将其更改为正确的页面名称。
现在,在C#代码中,您需要将WebMethod添加到函数之上:
[WebMethod]
public void SendToDB(string content)
{
string variable = content;
//here I send it to the database
}https://stackoverflow.com/questions/60623898
复制相似问题