2

IIS でホストされている WCF Web サービスがあります。これは webHttpBinding を使用します。メソッドには WebInvoke 属性があり、REST スタイルにアクセスできます。http://mydomain.com/MyService.svc/some/rest/style/thingのようにそれらを正常に使用でき 、Web サービスへの引数に POST します。

ここで、これを非標準ポート 7777 経由の HTTPS に変更したいと考えています。IIS を正しく構成し、証明書とすべてを取得しました。https://mydomain.com:7777で html ページにアクセスできます。次のようなセキュリティ ノードを追加するために、webhttpbinding を変更して追加しました。

<security mode="Transport">
    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
</security>

また、動作の servicemetadata ノードを変更し、httpGetEnabled='true' を削除して httpsGetEnabled='true' を追加しました。

https://mydomain.com:7777/MyService.svcにアクセスして、情報画面を表示できます。

http get を使用してhttps://mydomain.com:7777/MyService.svc/some/rest/style/thingにアクセスできますが、「メソッドは許可されていません」というメッセージが表示されます。

しかし、POST でhttps://mydomain.com:7777/MyService.svc/some/rest/style/thingにアクセスしようとすると、403 禁止されます


さらに情報を更新する

問題を絞り込んでいます

私は jQuery を使用しており、$.post(" http://mydomain.com/ .....". "data", callback, "json").. を介して Web サービスにアクセスしています。 post(" https://mydomain.com:7777/ .....". "data", callback, "json")..そしてそれは私に 403 を与えます... POST を送信する代わりに私が見る firebug を使用して、それは最初にOPTIONSを送信しています..そしてそれが403を与えているものです

これはjqueryの問題かもしれません

4

5 に答える 5

1

JQuery の $.ajax、$.get、$.post 呼び出しでは、クロスドメイン呼び出しが許可されません。作成すると、要求メソッドは POST ですが、POST 動詞の代わりに OPTIONS 動詞が送信されます。

他の回避策は、実際に呼び出したい URL の IP アドレスを指す別のサブドメインを作成することです。

于 2009-10-25T17:11:49.690 に答える
0

パフピオ:

「callback=?」を追加していることを確認してください。パラメータをリクエスト URI に追加します。次に、リクエスト ヘッダーに GET 動詞が表示されます。

jQueryのドキュメントページから:

コールバックは、「example.com?callback=?」の形式を取ります。jQuery は自動的に「?」を置き換えます。グローバル スコープと競合しないランダムなメソッド名を使用します。メソッド名を自分で指定する必要はありません。

お役に立てれば、

マイケル・イバラ

于 2010-01-06T21:33:10.383 に答える
0

jQuery の .load 関数を使用した Ajax 呼び出しが 403 エラーを返すという同じ問題があることがわかりました。IIS マネージャーの既定の Web サイトのプロパティでホーム ディレクトリに移動し、[構成] を選択して、.cgi 拡張子のプロパティを編集し、OPTION 動詞が含まれるようにする必要がありました。あなたの質問とその後のコメントを見つけることで、これを迅速に解決することができました。

于 2011-10-31T16:08:31.170 に答える
0

IIS が標準以外のポートで SSL トラフィックをリッスンするようにするには、 httpcfgを実行する必要があります。

于 2009-09-25T18:52:04.293 に答える
0

MOZILLA fire fox をブラウザとして使用している場合、リクエストをプリフライトして OPTIONS 動詞でリクエストを送信し、サーバーが 200 OK ステータスを返すと、POST 動詞で実際のデータをリクエストします。

クロスドメインの問題。

インテクハブ

于 2010-11-17T15:30:10.820 に答える