Asp.net mvc ASP.NET MVC 4-将JSON数据从客户端的任何页面发布到服务器
我需要将JSON数据从客户端发布到应用程序ASP.NET MVC 4,但javascript代码由用户运行,并将数据从网站www.lotsalneschs.com传输到我的服务器。为了进行测试,我使用了谷歌Chrome控制台面板。 控制器代码:Asp.net mvc ASP.NET MVC 4-将JSON数据从客户端的任何页面发布到服务器,asp.net-mvc,json,asp.net-mvc-4,Asp.net Mvc,Json,Asp.net Mvc 4,我需要将JSON数据从客户端发布到应用程序ASP.NET MVC 4,但javascript代码由用户运行,并将数据从网站www.lotsalneschs.com传输到我的服务器。为了进行测试,我使用了谷歌Chrome控制台面板。 控制器代码: public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult Save(List<NewsModel> items)
{
return Json(null);
}
}
public class NewsModel
{
public string Title { get; set; }
public string Content { get; set; }
public List<string> Tags { get; set; }
}
但是,在任何其他页面(例如stackoverflow.com)上执行此脚本不会在同一断点处中断。
如果我在脚本中删除contentType,将获得以下内容:
http://i.stack.imgur.com/4Hcyn.png
http://i.stack.imgur.com/F1Ql7.png
如果我删除contentType而不使用JSON.stringify格式化数据,请获取以下信息:
http://i.stack.imgur.com/4Hcyn.png
http://i.stack.imgur.com/F1Ql7.png
如何解决这个问题?我认为这与您的URL被硬编码到localhost有关。试着换掉你的电话线
url: 'http://localhost:28369/Home/Save',
与
编辑:
考虑一下,您应该看到Url.Action生成了什么路径。我认为问题是从另一台服务器运行的本地主机指向该服务器,而不是您的计算机。如果Url.Action不起作用,则应将其指向面向公众的地址。我的javascript代码不属于ASP.NET MVC 4应用程序。我自己在控制台Google Chrome中运行它,因为我不能使用@Url.Action(“保存”、“主页”)。我需要在任意页面上发布JSON数据,这些数据不属于我的ASP.NET MVC 4应用程序。我认为您遇到的问题与返回的Url为localhost有关。这将只指向运行脚本的服务器,而不是计算机。您需要将该返回url更改为远程服务器可以看到的服务器上的地址。类似的事情我也这么认为,但最后我向同一台计算机上的服务器发送了一个请求。所有关于服务器不可用的疑问都消失了,我托管了我的ASP.NETMVC4应用程序。因此,在脚本中,我将url更改为我的公共网站地址。什么都没有改变。如果在页面/主页/索引上运行脚本,则接收的数据格式正确。如果我在页面上运行脚本,什么也不会发生。我正在开发一个GoogleChrome扩展,可以将特定网页的数据发送到我的服务器。我已经了解到,使用XMLHttpRequest的请求只能针对与当前页面具有相同协议、域、端口的地址。但是,如果在删除脚本参数contentType后在stackoverflow.com页面上运行脚本,则服务器上接收到的数据,但无法正确反序列化数据,并且列表项等于null。
url: '@Url.Action("Save", "Home")',