私はStackOverflowで多くの同様の問題を読んでいますが、解決策は私のためには機能しません。プリフライトの応答に無効なHTTPステータスコード405
私は、WCF RESTサービスがあります。
[<OperationContract>]
[<WebInvoke(UriTemplate = "PostItem",
RequestFormat= WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, Method = "POST")>]
私はポストマン(Chromeの拡張機能)を使用して、それを使用することができます。私は 'urlencoded'ではなく 'raw'としてデータを渡しています。私は200のリターンコードを取得します。私はちょうどポストマンからURLやJSONをコピーした
$http.post('http://192.168.1.65/Service1.svc/restapi/PostItem',
{
"Address": "г. Москва, ул. Соколово-Мещерская, д.25",
...
"User": ""
})
:
私はangularjsを使用してこのメソッドを呼び出す必要があります。しかし、私はエラーを取得する:
angular.js:10722 OPTIONS http://192.168.1.65/Service1.svc/restapi/PostItem http://192.168.1.65/Service1.svc/restapi/PostItem . Response for preflight has invalid HTTP status code 405
私は同様の問題を検索しました2つの溶液を発見した:
- 使用jQueryのヘッダ
Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
を設定するが、それは私のWCFサービス - では動作しません。私のWeb.Configで
設定するカスタムヘッダー:
<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol>
それは私を助けません。そして、私はサーバー側でエラーの理由を確認していません。 Postman拡張は、このメソッドを正常に呼び出すことができます。
AngularJSを使用して同じPOST呼び出しを行うにはどうすればよいですか?
更新:ここ
は、OPTIONS要求である:
レビューとレスポンスのタブが空である
アップデート2:
すべてがIEで正常に動作します、しかし動作しませんクロム。
通常、.Netは405ステータスコードとともにエラー情報を送信します。 –
質問を更新し、Chromeでこのリクエストの画面を追加しました。 – demas
いいえ、あなたが投稿した更新画像を見て、「プレビュー」タブを確認してください –