我正在尝试使用Asp.net上的webmethod执行ajax,
我正在使用 JQuery-3.1.1
我想将值传递给服务器并获取值。我不知道自己做错了什么。
Asp.net代码
<div class="row">
<asp:Button ID="btnSave" runat="server" CssClass="btn btn-info" Text="save" />
</div>
Jquery代码
$(document).ready(function () {
$('#btnSave').click(function () {
var name= 'xxx';
$.ajax({
type: "POST",
url: "AjaxWebMethod.aspx/getFileExistOrNot",
data: '{fileName:'+name+'}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert("failed ="+response.d);
},
error: function (response) {
alert("error ="+response.d); //This alert is executing
}
});
function OnSuccess(response) {
alert("Result ="+response.d.mydata);
}
return false;
});
});
C#代码
public partial class AjaxWebMethod : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string getFileExistOrNot(string fileName)
{
string mydata="ajaxworking";
return mydata;
}
}
我真的不知道我犯了错误的地方
控制台上的错误消息
{消息:&#34;无效的JSON原语:xxx。&#34;,...}
ExceptionType:&#34; System.ArgumentException&#34;
消息:&#34;无效的JSON原语:xxx。&#34;
你能给出正确理由的解决方案吗?这对我更有帮助,谢谢
答案 0 :(得分:2)
你的postData是无效的JSON,一个字符串需要它周围的引号:
'{fileName:'+name+'}'
应该是:
'{fileName:"'+name+'"}'
答案 1 :(得分:0)
您正在进行的jQuery调用设置为在响应中期望JSON格式。看起来您的服务器端代码只是返回一个未编码为JSON的字符串。您需要更改服务器的输出或更改ajax调用的预期结果。