Javascript 创建jquery自定义对象
在asp中,我有一个函数:Javascript 创建jquery自定义对象,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,在asp中,我有一个函数: public async Task<IHttpActionResult> updateComment(int id, Comment comment) { //some stuff } 在ajax请求中,我将数据发送为: $.ajax({ url: '/api/Comment/updateComment', dataType: "json", cont
public async Task<IHttpActionResult> updateComment(int id, Comment comment)
{
//some stuff
}
在ajax请求中,我将数据发送为:
$.ajax({
url: '/api/Comment/updateComment',
dataType: "json",
contentType: "application/json",
cache: false,
type: 'POST',
data: { id: com.id, comment: com },
success: function (data) {
alert("done");
},
error: function () {
alert("error");
}
});
但请求不去上面的asp.net函数。我在浏览器控制台窗口404(未找到)
中出错。错误是因为它没有收到预期的注释
对象。我更改了ajax请求方法以查看url,url如下。
我定义的com
函数是否有问题?为什么它不起作用
更新:
public async Task<IHttpActionResult> updateComment()
{
//some stuff
}
并通过以下方式发送数据:
data: ko.toJSON(com),
它又能正常工作了 错误代码是
405:methodnotallowed
我猜这类似于,您的ajax是类型:“Post”
请求,但您的后端需要一些GET
请求
另一个建议是,您可以发送带有以下内容的字符串化对象:
data : '{ "id":"' + com.id + '", "comment":"' + com + '"}',
如果将ajax post与
两个参数类对象和其他类型一起使用,则需要创建其他obj,如下所示:
data: JSON.stringify(obj),
注意:确保com对象的所有属性与您的注释类相同
var com = {
id: self.id,
description: self.description,
postedBy: self.postedById,
time: new Date($.now()),
adId: self.adId,
};
var obj = {};
obj.id = com.id;
obj.comment = com;
并使用JSON.Stringy(obj)
传递数据,如下所示:
data: JSON.stringify(obj),
我已经测试了它正在工作的代码,请检查屏幕截图:
您的成功回调函数中有一个输入错误。删除“是的,那是个打字错误。”。我已经更正了。请在方法名称上方写入属性[HttpPost]
。好!它不起作用。仍然获取错误404(未找到)
404是页面未找到错误。在接收到POST
请求时,确保您使用了正确的URL
方法。我也在发送POST
请求。这张图片是GET
请求,我只是用它来检查url对象是如何发送的<代码>405:方法不允许
是因为它正在接收POST
请求,但我正在发送GET
只有这次我更新了问题。请看一下是否有帮助。405 POST方法经常出现错误。您可能试图在网站上引入某种输入表单,但并非所有ISP都允许使用必要的POST方法来处理表单。您可以从这里查看更多信息:data:JSON.stringify({id:com.id,comment:com}),
尝试一下。对不起。我想你误解了这个问题。实际上,我得到了404(未找到)
未找到错误。发布图片只是为了显示使用GET requestnot working的url<代码>404(未找到)
我更新了问题。请看一看。将您的参数int类型更改为string,并按照上面的顺序创建obj,然后检查一次。谢谢,但我在这方面浪费了很多时间。我找到了最糟糕的解决办法。我刚刚删除了id参数。
data: JSON.stringify(obj),