- PR -

POSTメソッドだとHTTP 405 エラーが発生する。

1
投稿者投稿内容
なな
ベテラン
会議室デビュー日: 2003/09/18
投稿数: 79
投稿日時: 2005-03-16 10:48
いつもお世話になっております。
現在、ActiveXからJavaScriptを呼んでSubmitする処理を作っています。
その中で
JavaScript側でSubmitし、あらかじめ用意しておいたHTMLを起動する処理を行って
います。(ActiveXのなかで発生したイベントをJavascriptでつかんでSubmitする)
GETメソッドだと正常に動作するのですがPOSTメソッドの場合は
"HTTP 405 - 許可されていないリソースです。"
が表示されてしまいます。
よくGETだとうまくいくのにPOSTにすると動かなくなるなどの記事を見かけたことがあるのですがこれも同じ事なのでしょうか?

以下がソースとなっています。
<SCRIPT LANGUAGE="JavaScript" FOR="Project1" Event="SelectClick(text1)">
   ↑(上記の文はActiveX側からわたってきたものです。)
<!--
with(sample1) {
action = text1;  ←textにはURLがセットされています。
method = "post";  ←"GET"にすると正常に動作
submit();
}
-->
</SCRIPT>
  <form name="sample1">
<B>
<FONT SIZE="3">
SAMPLE1
</FONT>
   <input type="hidden" name="hidData" value="" size="1000"/>
</B>
<HR>
<OBJECT ID="Project1" WIDTH=500 HEIGHT=300
CLASSID="CLSID:CC3E910C-A348-444E-8FCC-F7A92D39162B"
codebase="Project1.CAB#version=1, 1, 0, 2">>
<PARAM NAME="names" VALUE="aaa">
  </form>

GETだと文字数に制限がある理由からPOSTメソッドでの処理を行いたいのです。
クライアントの環境設定がPOSTメソッドは受けつけない設定になっているのか
と思い、IEやIISの環境設定で思い当たる部分をいじりましたが特に変わりませんでした。
どなたか解決策をご存知の方ご教授願います。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-03-16 11:22
//今一つ構造が掴めませんが……。

単純にSubmitした先がPOSTメソッドを受け入れてないだけでは?
POSTとGETではサーバ側の値の取得方法が異なりますから、単純にGETをPOSTに変えれば良いというものではありませんよ。
なな
ベテラン
会議室デビュー日: 2003/09/18
投稿数: 79
投稿日時: 2005-03-16 11:35
Hongliangさん、さっそく返答ありがとうございます。

>>//今一つ構造が掴めませんが……。
やりたい事はHTML(javascriptも書いておりますが・・)ファイルでOBJECTタグを
使用してActiveXを起動させております。
IEにActiveXコントロールが張り付いているイメージです。
そのActiveX側のテキストなどに検索条件を入れてボタンを押下、
RaiseEventステートメントを使ってJavaScript側へとデータが送られてきます。
それがここでいう
<SCRIPT LANGUAGE="JavaScript" FOR="Project1" Event="SelectClick(text1)">
の一文です↑

そのSelectClickプロシージャのなかの引数(test1)をそのままactionで渡してあげたいのです。それをPOSTメソッドで行いたいのです。

>>単純にSubmitした先がPOSTメソッドを受け入れてないだけでは?
これは受け取る側でもなにか設定をしなければいけないという事ですか?
正直、受け取り側は特になにもそれについては考慮させていないのですが・・。
ハル
常連さん
会議室デビュー日: 2003/02/12
投稿数: 22
投稿日時: 2005-03-17 22:43
このあたりとかどうですか?

[IIS]ErrMsg: HTTP/1.1 Error 405 - 許可されていないリソースですhttp://support.microsoft.com/default.aspx?scid=kb;ja;247536


あとは、やはりサーバー側で POST が許可されていないのかも。
実機がないので、うろ覚えですが、「サイトのプロパティ」-「ホームディレクトリ」-「構成」あたりから、拡張子のマッピングの設定ができたと思います。ここで、対象の拡張子の動詞に POST がないのかもしれません。
または、同じように URLScan で POST が許可されていないのかもしれません。


HTH
なな
ベテラン
会議室デビュー日: 2003/09/18
投稿数: 79
投稿日時: 2005-03-18 09:46
ハルさん返答ありがとうございました。

>IIS]ErrMsg: HTTP/1.1 Error 405 - 許可されていないリソースです>http://support.microsoft.com/default.aspx?scid=kb;ja;247536
これは私も参考にしました。
それでも動きませんでした。

>とは、やはりサーバー側で POST が許可されていないのかも。
>実機がないので、うろ覚えですが、「サイトのプロパティ」-「ホームディレクトリ」-「構
>成」あたりから、拡張子のマッピングの設定ができたと思います。ここで、対象の拡張子の動
>詞に POST がないのかもしれません。
>または、同じように URLScan で POST が許可されていないのかもしれません

これがすごく気になって調べてみました。拡張子のマッピング設定でも問題はなさそうだったんですが、それまで動かしていたhtmlファイルの拡張子を.htmlから.aspに変更したら
POST出来るようになりました。
拡張子のマッピングにはhtmlという拡張子がなかったんですが(shtmlという拡張子はあった)
それが問題だったのでしょうか?URLScanの情報もみましたがURLScanがなんであるかが
ホームページを調べても正直、良く理解できません・・・勉強します。
1

スキルアップ/キャリアアップ(JOB@IT)