0

PHPとjQueryでC#のWebサービスを使いたいです。以下のコードは、$.ajax を使用してデータを php コードに投稿しています。しかし、i=of url 内では、Web サービスからデータを取得できません。このコードの開発にどのように役立つでしょうか

$.ajax({
          type: "POST",
          url: "http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit",
          dataType: 'jsonp',
          success: function(data) {alert('ok')},
          error  : function(e) {alert('error')}
        });
4

1 に答える 1

1

同一オリジン ポリシーに違反しています。AJAX 要求をリモート ドメインに送信することはできません。AJAX を使用して JavaScript から ASMX Web サービスを利用する場合、このサービスは、このスクリプトを含むページと同じドメインに配置する必要があります。

リクエストで指定dataType: 'jsonp'したようですが、リモート ASMX サービスが をサポートするように構成されていない場合、これは意味がありませんJSONP

考えられる回避策として、ローカル ドメインとリモート ドメインの間のブリッジとして機能する新しい PHP スクリプトを作成し、AJAX 要求を PHP スクリプトに送信することができます。次に、このスクリプトは HTTP 要求を送信してリモート Web サービスを呼び出し、結果を返します。

$.ajax({
    type: 'POST',
    url: '/CelsiusToFahrenheit.php',
    success: function(data) { alert('ok') },
    error: function(e) { alert('error') }
});

次にCelsiusToFahrenheit.php記述する必要があるスクリプトは、呼び出しをリモート ドメインに委任して、実際の ASMX サービスを呼び出します。PHP を使用して ASMX Web サービスを呼び出す方法に関するチュートリアルは無数にあります。1 つ:複数のパラメーターを使用して PHP から asp.net Web サービスを呼び出します

于 2012-12-08T21:31:01.920 に答える