首页新闻找找看学习计划

web api .core 3.1 接受ajax()报错

0
悬赏园豆:5 [已解决问题] 解决于 2020-04-06 07:24

后端:
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)

请问怎么解决

泰德的主页 泰德 | 初学一级 | 园豆:3
提问于:2020-03-23 14:51
< >
分享
最佳答案
0

格式不对
应该是dataType:"Json"
你的 application/json 应该是 hander 的请求返回类型
还有你代码排版一下,太丑了

收获园豆:5
Cgrain | 小虾三级 |园豆:972 | 2020-03-23 19:37

还是不起作用。
代码丑是博客园自己这样显示的,我已经排版了。

泰德 | 园豆:3 (初学一级) | 2020-03-27 01:40

@泰德:

data:JSON.stringify(aa),
变成 data:{aa:'aa'}
dataType:"application/json"
变成这样 datatype:"json
或者注释掉这一行.
实在不行 dynamic 变成 string ,看这错误估计是你这几个地方写错误了

Cgrain | 园豆:972 (小虾三级) | 2020-03-27 08:57

@Cgrain:
您好!
把 dynamic 改为 string 终于不报 415 错误了,但是ajax的值传不到后台。
data用什么对象、Json字符串都不行。

泰德 | 园豆:3 (初学一级) | 2020-03-29 13:01
data:{"data":"test"}

或者

public string PostCustomerScoreDetail(string  id)
{
//
}
Cgrain | 园豆:972 (小虾三级) | 2020-03-29 14:05

@Cgrain:
还是不行,只有把参数拼接到url中,后台能接受

泰德 | 园豆:3 (初学一级) | 2020-03-29 14:29

@泰德: 你这个是 Post 请求, 需要加上 [FromBody] string data
你后台的这个方法改成Get 就有值了

Cgrain | 园豆:972 (小虾三级) | 2020-03-29 17:58

@Cgrain:
后端是POST请求,但是只能拼接到url才能接受到参数(真是奇怪啊!),可能能是跨域造成的(我已经处理跨域问题了)。目前只能这么处理了。
当然,如果改为Get,就不会遇到这些麻烦。

泰德 | 园豆:3 (初学一级) | 2020-03-30 09:57

@泰德:

你f12 看看有跨域错误嘛

Cgrain | 园豆:972 (小虾三级) | 2020-03-30 16:45

@Cgrain:
没有跨域错误。

泰德 | 园豆:3 (初学一级) | 2020-04-01 07:23

@泰德:
前端:

  $.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 | 园豆:972 (小虾三级) | 2020-04-01 08:53

@Cgrain:
还是不行。
跨域就不行,如果不跨域,可以

泰德 | 园豆:3 (初学一级) | 2020-04-06 07:23

@泰德: 有空的话,我自己照你这个写的前后端看看

Cgrain | 园豆:972 (小虾三级) | 2020-04-06 08:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册