Javascript jQuery发布到ASP.NET核心控制器时出现问题
我在stackoverflow上经历了这个问题,但我无法解决我的问题 在HomeController中,我有一个名为Audit的方法,我想通过jQuery从/Home/Index页面的脚本发布该方法。控制器看起来像:Javascript jQuery发布到ASP.NET核心控制器时出现问题,javascript,jquery,asp.net-core,.net-core,asp.net-core-mvc,Javascript,Jquery,Asp.net Core,.net Core,Asp.net Core Mvc,我在stackoverflow上经历了这个问题,但我无法解决我的问题 在HomeController中,我有一个名为Audit的方法,我想通过jQuery从/Home/Index页面的脚本发布该方法。控制器看起来像: public class HomeController : Controller { [HttpPost] [ValidateAntiForgeryToken] public JsonResult Audit([FromBody] JObject jObject)
public class HomeController : Controller
{
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Audit([FromBody] JObject jObject)
{
if (jObject != null)
{
return Json("success");
}
return Json("failed");
}
}
在/Home/Index页面的javascript文件中,我尝试以如下方式将JSON对象发布到该审计中:
var auditData = {};
$(document).ready(function(){
var request = $.getJSON('http://www.geoplugin.net/json.gp', function (responseData, status) {
auditData = {
Latitude : responseData.geoplugin_latitude,
Longitude : responseData.geoplugin_longitude
};
$.post('Audit', auditData, function (response) {
console.log(response);
});
});
});
我希望auditData对象在/Home/Audit中作为JObject发布,但出现了一些问题。我认为控制器或$方法中存在问题。如何解决此问题?您的帖子URL错误,您需要将要发回的数据命名为
jObject
,以匹配您在控制器中定义的内容
$.post('@Url.Action(“审计”,“主页”,新的{area=”“})”,{jObject:auditData},
功能(响应){
控制台日志(响应);
});
当前代码中存在多个问题,请逐一检查以下要点:
Home/Audit
[ValidateAntiForgeryToken]
@section Scripts{
<script type="text/javascript">
var auditData = {};
$(document).ready(function(){
auditData = {
Latitude : "l1",
Longitude : "l2"
};
$.ajax({
type: 'POST',
url: 'Home/Audit',
data: JSON.stringify(auditData),
success: function(data) { alert('data: ' + data); },
contentType: "application/json"
});
});
</script>
}
您是否调试了请求以查看错误是什么?我可以看出您没有传递防伪令牌,因此该属性将导致问题(如果没有)else@RoryMcCrossan调试说明:加载资源失败:服务器响应状态为404(未找到)。这是您的第一个问题。
“审核”
路径无效。我建议试试'/Home/Audit'
public class HomeController : Controller
{
[HttpPost]
//[ValidateAntiForgeryToken]
public JsonResult Audit([FromBody]JObject jObject)
{
if (jObject != null)
{
return Json("success");
}
return Json("failed");
}
}