gpt4 book ai didi

javascript - 从 Ajax 函数的代码隐藏中调用 C# 函数

转载 作者:行者123 更新时间:2023-12-03 03:45:14 25 4
gpt4 key购买 nike

我一直在尝试使用代码隐藏函数来加密两个变量以作为查询字符串返回。但我一直没有成功。第一次尝试 Ajax。

所以,在代码后面我有这个方法:

[WebMethod]
public static string EncritaDados(string str, string str2)
{
return Verificacoes.EncryptString(str)+";"+ Verificacoes.EncryptString(str2);
}

在我的 ASP 中,我有这个(实现 facebook 登录):

function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me?fields=name,email', function (response) {
console.log('Successful login for: ' + response.name);
Ajax(response.email, response.name)
});
}

function Ajax(expressao1, expressao2) {
$.ajax({
url: 'login.aspx/EncritaDados',
method: 'post',
contentType:'application/json',
data: '{str: ' + expressao1 + ', str2: ' + expressao2 + '}',
dataType:'json',
success: function (resp) {
var strings = resp.d.split(";");
window.location.href = 'login.aspx?email=' + strings[0] + '&nome=' + strings[1];
},
error: function () { }
})
}

在尝试 Ajax 之前,它可以工作,无需尝试获取背后的代码。我是这样的:

    function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me?fields=name,email', function (response) {
console.log('Successful login for: ' + response.name);
window.location.href = 'login.aspx?email=' + response.email+ '&nome=' + response.name;
});
}

我现在正在挠头。谁能帮我这个?我将不胜感激。

编辑:我是这样得到的:

function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me?fields=name,email', function (response) {
console.log('Successful login for: ' + response.name);
Ajax(response.email, response.name);
});
}

function Ajax(expressao1, expressao2) {
var request = { email: expressao1, nome: expressao2 }
$.ajax({
url: 'login.aspx/EncritaDados',
method: 'post',
contentType: 'application/json',
data: JSON.stringify(request),
dataType: 'json',
success: function (resp) {
var strings = resp.d.split(";");
window.location.href = 'login.aspx?email=' + strings[0] + '&nome=' + strings[1];
},
error: function (error) { alert(error.status); }
})

并在后面的代码中:

[WebMethod]
public static string EncritaDados(string email, string nome)
{
return Verificacoes.EncryptString(email) + ";" + Verificacoes.EncryptString(nome);
}

所以,基本上,我做了一些小的更改,但它没有做它应该做的事情,因为数据字符串的格式错误。但我按照 JSON.stringify 的建议对其进行了格式化,并且成功了。

最佳答案

您的 JavaScript 中有错误。 resp.d 而不是 resp.data:

function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me?fields=name,email', function (response) {
console.log('Successful login for: ' + response.name);
Ajax(response.email, response.name)
});
}

function Ajax(expressao1, expressao2) {
var requestObject = { str : expressao1, str2 : expressao2 }
$.ajax({
url: 'login.aspx/EncritaDados',
method: 'post',
contentType:'application/json',
data: JSON.stringify(requestObject),
dataType:'json',
success: function (resp) {
var strings = resp.data.split(";");
window.location.href = 'login.aspx?email=' + strings[0] + '&nome=' + strings[1];
},
error: function () { }
})
}

关于javascript - 从 Ajax 函数的代码隐藏中调用 C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com