C# Ajax调用失败,但不是';调试时不要抛出错误
我的AJAX调用用于将数据从JS发送到C,因此我可以使用它服务器端。我的呼叫似乎导致一个错误抛出警报(“失败”)。我正在visual studio调试器中运行解决方案,但没有出现错误。我已经尝试了很多来解决这个问题,但不确定为什么它不起作用 如果没有任何错误,为什么会失败? AJAX调用-C# Ajax调用失败,但不是';调试时不要抛出错误,c#,ajax,C#,Ajax,我的AJAX调用用于将数据从JS发送到C,因此我可以使用它服务器端。我的呼叫似乎导致一个错误抛出警报(“失败”)。我正在visual studio调试器中运行解决方案,但没有出现错误。我已经尝试了很多来解决这个问题,但不确定为什么它不起作用 如果没有任何错误,为什么会失败? AJAX调用- function get_email(){ var test_email = $("#email_entry").val(); console.log(test_email); $("
function get_email(){
var test_email = $("#email_entry").val();
console.log(test_email);
$("#email_entry").val('');
if ((email_validate(test_email)) == true) {
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetData",
contentType: "application/text; charset=utf-8",
data: test_email,
dataType: "string",
success: function (result) {
alert('Works');
},
error: function (result) {
alert('Doesnt work');
}
});
}else if ((email_validate(test_email)) == false) {
alert("Email is not valid!");
}
}
C#数据存储的位置
public partial class WebForm1 : System.Web.UI.Page
{
public class EmailStore
{
public string Email { get; set; }
}
[WebMethod]
public static void GetData(string test_email)
{
String a = test_email;
Console.WriteLine(a);
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
更改您的$.ajax()
,如下所示:
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetData",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({test_email: test_email}),
dataType: "json",
success: function (result) {
alert('Works');
},
error: function (result) {
alert('Doesnt work');
}
});
我注意到你没有从你的c#方法返回一个状态来回应它是否成功。 在ASPNetCORE c#中,将结果返回到ajax调用,如下所示:
public IActionResult GetData(string person_email)
{
try
{
String a = test_email;
Console.WriteLine(a);
return string.IsNullOrEmpty(a) ?
(IActionResult)BadRequest("email null or empty") : Ok();
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
浏览器devtools控制台中是否有任何错误?var text_email=$(“#email_entry”).val();控制台日志(测试电子邮件);你把变量名text_email拼错了test_email第二,试试这个-data:“test_email=“+test_email第三,为什么这个语句有不同的变量?公共静态void GetData(string person_email){string a=test_email;Console.WriteLine(a);}。我认为应该是这样的GetData(字符串测试\电子邮件)。我想,[WebMethod]必须具有与查询参数变量相同的变量名。更改
数据类型:“json”
和更改内容类型:“application/json;charset=utf-8”
以及最后的数据:json.stringify({test_email:test_email}),
。感谢您的评论,还没有开发C#但只是想让AJAX调用正常工作,这是一个很好的建议!