Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC 4-将JSON数据从客户端的任何页面发布到服务器_Asp.net Mvc_Json_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc ASP.NET MVC 4-将JSON数据从客户端的任何页面发布到服务器

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]

我需要将JSON数据从客户端发布到应用程序ASP.NET MVC 4,但javascript代码由用户运行,并将数据从网站www.lotsalneschs.com传输到我的服务器。为了进行测试,我使用了谷歌Chrome控制台面板。 控制器代码:

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")',