如何解决 Ajax 上的 Invalid JSON Primitive 错误?
How to solve Invalid JSON Primitive error on Ajax?
我正在尝试在 Asp.net、
上使用网络方法执行 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;
}
}
I don't know really where I did my mistake
控制台上的错误消息
{Message: "Invalid JSON primitive: xxx.",…}
ExceptionType:"System.ArgumentException"
Message:"Invalid JSON primitive: xxx."
能不能给出合理的解决方案。这将有助于我了解更多,谢谢
您正在进行的 jQuery 调用设置为预期响应中的 JSON 格式。您的服务器端代码似乎只是返回一个未编码为 JSON 的字符串。您需要更改服务器的输出或更改 ajax 调用的预期内容。
您的 postData 无效 JSON,字符串需要用引号引起来:
'{fileName:'+name+'}'
应该是:
'{fileName:"'+name+'"}'
我正在尝试在 Asp.net、
上使用网络方法执行 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;
}
}
I don't know really where I did my mistake
控制台上的错误消息
{Message: "Invalid JSON primitive: xxx.",…}
ExceptionType:"System.ArgumentException"
Message:"Invalid JSON primitive: xxx."
能不能给出合理的解决方案。这将有助于我了解更多,谢谢
您正在进行的 jQuery 调用设置为预期响应中的 JSON 格式。您的服务器端代码似乎只是返回一个未编码为 JSON 的字符串。您需要更改服务器的输出或更改 ajax 调用的预期内容。
您的 postData 无效 JSON,字符串需要用引号引起来:
'{fileName:'+name+'}'
应该是:
'{fileName:"'+name+'"}'