后端:
public string PostCustomerScoreDetail(dynamic data)
{
//
}
前端:
var aa={id:"1999"};
$.ajax({
url:"http://localhost:5000/api/CustomerScoreDetails",
type:"POST",
dataType:"application/json",
data:JSON.stringify(aa),
success: function (data) {
if (data == "OK") {
console.log("Bell is beaten!");
}
},
error: function (errorThrown) {
console.log(errorThrown.error);
}
});
报错:POST http://localhost:5000/api/CustomerScoreDetails 415 (Unsupported Media Type)
请问怎么解决
格式不对
应该是dataType:"Json"
你的 application/json 应该是 hander 的请求返回类型
还有你代码排版一下,太丑了
还是不起作用。
代码丑是博客园自己这样显示的,我已经排版了。
@泰德:
data:JSON.stringify(aa),
变成 data:{aa:'aa'}
dataType:"application/json"
变成这样 datatype:"json
或者注释掉这一行.
实在不行 dynamic
变成 string
,看这错误估计是你这几个地方写错误了
@Cgrain:
您好!
把 dynamic 改为 string 终于不报 415 错误了,但是ajax的值传不到后台。
data用什么对象、Json字符串都不行。
data:{"data":"test"}
或者
public string PostCustomerScoreDetail(string id)
{
//
}
@Cgrain:
还是不行,只有把参数拼接到url中,后台能接受
@泰德: 你这个是 Post 请求, 需要加上 [FromBody] string data
你后台的这个方法改成Get
就有值了
@Cgrain:
后端是POST请求,但是只能拼接到url才能接受到参数(真是奇怪啊!),可能能是跨域造成的(我已经处理跨域问题了)。目前只能这么处理了。
当然,如果改为Get,就不会遇到这些麻烦。
@泰德:
你f12 看看有跨域错误嘛
@Cgrain:
没有跨域错误。
@泰德:
前端:
$.ajax({
type: "POST",
url: "url",
contentType: 'application/json',
data:{"data":"aa"},
success: function (data) {
console.log(data);
} ,error=>(){
}
})
后端:
public string PostCustomerScoreDetail([FromBody] string data) { // }
@Cgrain:
还是不行。
跨域就不行,如果不跨域,可以
@泰德: 有空的话,我自己照你这个写的前后端看看