0

javascriptでSOAPクライアントを作成しました。問題は、GoogleChromeでのみ機能することです。

コード:

$("#send").click(function (event) {
    var wsUrl = "http://myip:8084/Service1.asmx";
    var soapRequest =
        '<?xml version="1.0" encoding="utf-8"?> \
        <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" \
        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \
            <soap:Body> \
                <GetVozilo xmlns="http://mydomain.com/apps"> \
                      <vin>' + $("#vin").val() + '</vin> \
                </GetVozilo> \
            </soap:Body> \
        </soap:Envelope>';

        console.log(soapRequest);

                $.ajax({
                    type: "post",
                    url: wsUrl,
                    contentType: "text/xml",
                    dataType: "xml",
                    data: soapRequest,
                    success: processSuccess,
                    error: processError
                });

            });

コンソールでは、次のエラーも発生します。

オプションhttp://mydomain.com/Service1.asmx403(禁止)

手伝ってくれませんか?

4

2 に答える 2

1

任意のブラウザで異なるドメインからデータを取得する方法があります。jQueryではJSONPを使用できます。詳細:http ://www.jquery-tutorial.net/ajax/same-origin-policy/

于 2012-05-04T14:28:50.600 に答える
0

これは同一生成元ポリシーによるものと非常によく似ています。

スクリプトが実行されているドメイン以外のドメイン(あなたの場合はlocalhostvs )にajax-requetsを送信することはできません。84.255.246.99:8084私はあなたがクロムに​​ある種の例外規制を追加したと思いますので、それはそのブラウザであなたのために働きます。

これを確認するには、firebugまたは機能していないブラウザのdeveloverコンソールを使用して、応答ヘッダーを調べます。次のようなものが見つかる可能性があります。

X-Frame-Options:sameorigin
于 2012-05-04T14:15:32.650 に答える