0

我需要将 JSON 数据从客户端发布到应用程序 ASP.NET MVC 4,但 javascript 代码由用户运行并将数据从网站 www.lotsalneschs.com 传输到我的服务器。为了进行测试,我使用了 Google 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; }
}

Javascript代码:

function News() {
    var arr = {};
    var title = "items";
    var tTitle = "Title";
    var cTitle = "Content";
    var tgTitle = "Tags";
    arr[title] = [];
    for (var i = 0; i < 10; i++) {
        var n = {};
        n[tTitle] = "Title №" + i;
        n[cTitle] = "TEXT";
        n[tgTitle] = [];
        for (var j = 0; j < 5; j++) {
            n[tgTitle].push("tag" + j);
        }
        arr[title].push(n);
    }
    return arr;
}
var news = News();
$.ajax({
    url: 'http://localhost:28369/Home/Save',
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json',
    data: JSON.stringify(news)
});

如果我在页面 localhost:28369/Home/Index 上执行脚本,则一切正常:

http://i.stack.imgur.com/RL1nR.png

  但是在任何其他页面上执行此脚本,例如 stackoverflow.com 不会在同一断点处中断。如果我在脚本中删除 contentType,得到以下内容:

http://i.stack.imgur.com/4Hcyn.png

如果我删除 contentType 并且不使用 JSON.stringify 来格式化我的数据,请获取以下内容:

http://i.stack.imgur.com/F1Ql7.png

如何解决这个问题?

4

1 回答 1

0

我认为这与您的 URL 被硬编码到本地主机有关。尝试更换您的线路

url: 'http://localhost:28369/Home/Save',

url: '@Url.Action("Save", "Home")',

编辑:

考虑一下,您应该会看到 Url.Action 生成了什么路径。我认为问题是从另一台服务器运行的,本地主机指向该服务器而不是您的计算机。如果 Url.Action 不起作用,那么您应该将其指向一个面向公众的地址。

于 2013-09-16T20:13:41.153 回答