晚上好, 我正在尝试在C#页面中进行AJAX调用,而我正在处理一些问题。
我的jQuery代码是:
$(document).ready(function () {
$.ajax({
type: "POST",
url: "conteudo.aspx/GetNewPost",
data: { ids: "<%=Request.QueryString["idconteudo"]%>" },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (data) {
alert("ok");
}
});
});
我的代码隐藏是:
[WebMethod]
public static string GetNewPost(string ids)
{
// some code
return ids;
}
有人知道发生了什么事吗?
PS:错误是Internal Server Error
。
答案 0 :(得分:0)
尝试:
var idconteudo =&#34;&lt;%= Request.QueryString [&#34; idconteudo&#34;]%&gt;&#34;;
...
...
url:&#34; conteudo.aspx / GetNewPost&#34;,
数据:&#34; {ids:\&#34;&#34; + idconteudo +&#34; \&#34;&#34; }&#34 ;,
contentType:&#39; application / json;字符集= UTF-8&#39 ;,
...
...
答案 1 :(得分:0)
请使用以下代码
因为您使用查询字符串中的文本数据类型,所以您可以将数据类型设为text
$(document)
.ready(function () {
var q = "<%=Request.QueryString["idconteudo"]%>";
alert(q);// just to check the value
// assuming that you had passed query string value
$.ajax({
type: "POST",
url: "conteudo.aspx/GetNewPost",
data: { "ids": q },
//contentType: 'application/json; charset=utf-8',
dataType: 'text',// data type should be text
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " +
XMLHttpRequest.toString() +
"\n\nStatus: " +
textStatus +
"\n\nError: " +
errorThrown);
},
success: function(data) {
alert("ok");
}
});
});
编辑1 :如果Web方法位于ASPX页面上,您应使用以下代码,以便获得Json格式的结果
$(document)
.ready(function () {
var q = "<%=Request.QueryString["idconteudo"]%>";
//alert(q);
// just to check the value
// assuming that you had passed query string value
$.ajax({
type: "POST",
url: "conteudo.aspx/GetNewPost",
data: '{ids: "' + q + '" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " +
XMLHttpRequest.toString() +
"\n\nStatus: " +
textStatus +
"\n\nError: " +
errorThrown);
},
success: function (result) {
alert("ok" + result.d);
}
});
});
答案 2 :(得分:-1)
根据您发布的内容,我发现有两件事是不正确的,另外一件事可能没有在您的问题中发布,但事实上它确实存在于您的真实来源中。
1)您的data
写错了。它应该是:
$(document).ready(function () {
var test = "<%=Request.QueryString["idconteudo"]%>";
$.ajax({
type: "POST",
url: "conteudo.aspx/GetNewPost",
data: { 'ids' : test }, // the ids needs to have quotes to be correct syntax
dataType: 'text',
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (data) {
alert("ok");
}
});
});
2)你说它是POST
,但你的方法没有用[HttpPost]
注释装饰。
3)您的dataType
设置为'json'
,但您的方法返回string
..因此'json'
应更改为'text'
。
希望这有帮助!