1

次の Web Api メソッドがあります。これは、新しい製品を作成して場所を設定する限りは正常に機能します。これは、Google 開発者ツールで応答ヘッダーを確認し、それが有効であることを確認したためです。ツールからブラウザへの場所を切り取って貼り付けると、ページが正常に読み込まれます。ただし、メソッドからの応答が返されるため、ロードされません。

     public HttpResponseMessage PostProduct(Product product)
    {
        productsRepository.Create(product);

        var response = Request.CreateResponse<Product>(HttpStatusCode.Created, product);

        string uri = Url.Link("ProductsIndex", null);

        response.Headers.Location = new Uri(Request.RequestUri,"/Products/testview");

        return response;
    }

PostProduct を呼び出す jQuery:

    $("#createjQButton").click(function () {

    var product = { Name: $("#Name").val(), Category: $("#Category").val(), Price: $("#Price").val() };
    var json = JSON.stringify(product);

    // Send an AJAX request to create a new product
    $("#createjQButton").click(function () {
    var product = { Name: $("#Name").val(), Category: $("#Category").val(), Price:  $("#Price").val() };
    var json = JSON.stringify(product);

    $.ajax({
        url: '/api/productsapi',
        cache: false,
        type: 'POST',
        data: json,
        contentType: 'application/json; charset=utf-8'     
    });

    return false;
});

場所が無視されるのはなぜですか?

4

1 に答える 1

0

さて、私は追加しました

statusCode: {
   201 : function() {
            window.location.replace("/Products/testview");
   }

私のjQueryクリック機能に、その方法で目的のページに到達しました。しかし、元の方法がうまくいくはずではありませんか?

于 2013-11-08T23:32:06.200 に答える