【发布时间】:2017-07-31 17:21:45
【问题描述】:
我一直在尝试获取函数背后的代码,以获取加密的两个变量以作为查询字符串返回。但我一直没有成功。第一次尝试 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 c# jquery asp.net ajax