帖子:
m = '{" userID":"1"}';
虽然Put有:
m = '{"userID":"1"}';
注意区别?该空间改变了令牌。
愚蠢我 愚蠢的JavaScript。
感谢Shiva的工作。
原件:
作为序言,这是一个个人项目,为了学习,最佳实践并不值得在这里写一篇三页的文章。然而,链接到一个并不是一件坏事。 ;)
所以,我遇到了我遇到的最美味,最荒谬的问题。使用[FromBody]值
// POST api/values
[HttpPost]
public HttpResponseMessage Post([FromBody] JToken value){
int b = (int)value.SelectToken("UserID");
}
返回"值不能为空。参数名称:值"
“本地”面板具有: +值{{ " UserID":" 1" Newtonsoft.Json.Linq.JToken {Newtonsoft.Json.Linq.JObject}
好的,所以它有价值。这很奇怪。
时更是如此[HttpPut]
public HttpResponseMessage Put([FromBody]JToken value){
int b = (int)value.SelectToken("UserID");
}
工作得很好。请注意代码中明显缺乏差异。
哦,我经过的对象?
{{
"UserID": "1"
}}
那么,任何人都有任何猜测是什么发生了什么?我此时脑细胞出血了。
编辑:我可爱的测试AJAX调用:(注意,这是DELETE。)
var a = new XMLHttpRequest();
a.open("DELETE", "../api/manifests");
a.setRequestHeader("Content-type", "application/json");
a.onreadystatechange = function () {
if (a.readyState === XMLHttpRequest.DONE && a.status == "200") {
alert("Manifest Created!");
window.location = "../Portal/ViewManifest?mid="+d;
}
}
m = '{"userID":"1"}';
a.send(m);