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 に答える