2

json データをサーバーに投稿しようとしています。Web アプリケーションのホスティングに Visual Studio 2012 RC と windowsazure を使用しています。投稿時に次のエラーが発生します。

  1. オプション http:// * .azurewebsites.net/api/Child 405 (メソッドは許可されていません) jquery-1.7.1.js:8102

  2. XMLHttpRequest は http:// * .azurewebsites.net/api/Child を読み込めません。Origin null は、Access-Control-Allow-Origin では許可されていません。

私のクライアント側のコードは次のとおりです。

       function PostChild() {                  
        var Chld = {};            
        Chld.Child_FirstName = $("#Child_FirstName").val();
        Chld.Child_LastName = $("#Child_LastName").val();
        Chld.Child_Age = $("#Child_Age").val();          
        var createurl = "http://*.azurewebsites.net/api/Child";                      
        $.ajax({
            type: "POST",
            url: createurl,
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(Chld),       
            statusCode: {
                200: function () {
                    $("#txtmsg").val("done");
                    alert('Success');
                }
            },
            error:
                function (res) {
                    alert('Error');
                    $("#txtmsg").val("error" + " "
                    + res.status + " " + res.statusText);
                }
        });
    }

私のサーバー側のコードは次のとおりです。

    public HttpResponseMessage PostChild(Child child)
    {


        if (ModelState.IsValid)
        {
            db.Children.Add(child);
            db.SaveChanges();

            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, child);
            response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = child.ChildID }));
            return response;
        }
        else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }
    }

お願い助けて

ありがとう、

4

1 に答える 1

1

エラーは、CORS (クロス オリジン リソース共有) が原因でした。デフォルトでは、Web ページは、そのページのドメイン以外のドメインのサービス (API) を呼び出すことはできません。これは、クロスサイト フォージェリ攻撃などを回避するためのセキュリティ対策です。

それを解決するには、次のチュートリアルに従います。

http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx

于 2012-08-22T04:25:07.510 に答える