dotnet core webapi 代码如下
[HttpGet]
[EnableCors("CMSCorsConfig")]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
[EnableCors("CMSCorsConfig")]
public ActionResult<string> Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
[EnableCors("CMSCorsConfig")]
public void Post([FromBody] string value)
{
//throw new Exception("HELLO FROM POST");
}
axios 请求代码如下:
export function write (title, name) {
return axios({
url: '/values/',
method: 'post',
data: { title, name }
})
}
错误如下:
我将axios 调用另一个API时成功,
export function write (title, name) {
return axios({
url: '/values/',
method: 'get'
})
}
我用如下改写后可以成功,但无法得到值
[HttpPost]
[EnableCors("CMSCorsConfig")]
public string Post( string title,string name)
{
return title;
}
改成这样可以调用成功,但返回永远是空值
该如何调整,另外[FromBody]是什么情况下使用
后台是form表单接收数据吗,应为你用get请求的时候是url传输,后台接收到的数据格式是类似'id=1&from=home'这样的格式,但是你用post传输的话数据格式是键值对:{ id: 1, from: "home" },后台接收不到吧。
如果后台数form表单接收的话,在axios拦截器里面使用'qs'模块`import axios from 'axios';
import { getToken } from './auth'
// import 'url-search-params-polyfill'
import qs from 'qs'
axios.defaults.timeout = 5000
axios.defaults.baseURL = process.env.BASE_API
//http request 拦截器
axios.interceptors.request.use(
config => {
},
error => {
}
);`