2017-03-07 13 views
0

私は、クロスドメインリクエストを作成しようとしていると思われるので、(私はAJAX APIを構築しています、と私は405エラーを取得してきました。クロスドメインではないAJAX APIを構築するにはどうすればよいですか?

var API = function() { 


    API.AddToCart = function(item_id) { 
     $.ajax({ 
      type: "POST", 
      url: "/add-cart-item/" + item_id, 
      success: function(){ 
      } 
     }); 
    } 
}; 

を、私はこのクロスを作るのか理解していませんドメイン、およびどのようにクロスドメインリクエストを作成しないように。誰かが私にこの概念を説明することはできますか?

答えて

1

あなたのサーバーは、そのエンドポイントのためのPOSTメソッドをサポートしていないようです。もっと説明についてhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405を確認してください。

+0

驚くべきことに、あなたはそれをどのように理解したかわかりません。私は 'GET'リクエストでURLからデータを取り出すことで変なことをしようとしていました。私は本当にAJAXがURLにデータを送信できることを理解していません。私のAJAXリクエストに 'data:*'セクションがないことにお気づきかもしれません。その概念を説明するリンクやウェブサイトを知っていますか? – Jacob

+0

AJAXの基本的な概念をもっと理解し、理解したい場合は、このリンク[AJAX-MDN](https://developer.mozilla.org/en/US/docs/AJAX)を参照してください。 – Hirak

1

あなたが405を取得したからといって、必ずしもCORSの問題があるとは限りません。そのPOSTメソッドはサーバー側でそのメソッドに対して許可されていますか?

+0

405エラーの原因は何ですか? – Jacob

+0

@JacobHenning時にはCORSの問題ですが、クロスドメインを投稿していない場合は、通常、メソッドでは特定のタイプのリクエスト、たとえばGETとPOSTは許可されないためです。 [HttpGet]属性と[HttpPost]属性を使用してコントローラメソッドを修飾することで、これらのタイプのリクエストのみを特に許可します。 PUTやDELETEなどの種類のリクエストを制限する場合は、それらを組み合わせて[HttpGet、HttpPost]することもできます –

関連する問題