0

enter code hereWeb サイト内の検索から値を返すサード パーティの Web サービス (soap) があります。検索のパラメーターを含むプレーンな古い URL を使用して、このサービスを呼び出すことができます。元。市、州、または郵便番号。このサービスは、適切にフォーマットされた XML 文字列を返します。

問題は... Javascriptを使用すると、サービス/ URLを問題なく呼び出すことができます。

しかし、コールバックは失敗しています。表示されるメッセージは、解析エラーを示しています。

firefox と firebug を使用すると、結果がプレーンな古い XML で正しく返されていることがわかります。

ajax コールバックが結果を解析しようとしているようですが、失敗しています。

このサード パーティはまったく別の Web サイトにあるため、クロス サイト スクリプティングのルールが適用されます。

質問は...

1) 解析を実行せずに結果を取得する方法はありますか? 2) 結果セットを表示して操作できるように調整できる追加のパラメーターはありますか?

これが私が使用しているコードです...

  function LoadMenu() {
    varType = "GET";
    varUrl = "https://www.xxxx.com/soap/352mg/xml.php?callback=?";
    varData = { zip: 68105 };
    varContentType = "text/xml; charset=utf-8";
    varDataType = "jsonp";
    varProcessData = false;
    $.ajax({
      crossdomain: true,
      type: varType, //GET or POST or PUT or DELETE verb
      url: varUrl, // Location of the service
      data: varData, //Data sent to server
      contentType: varContentType, // content type sent to server
      dataType: varDataType, //Expected data format from server
      processdata: false, // varProcessData, //True or False
      success: function (msg) {//On Successfull service call
        serviceSucceeded(msg);
      },
      error: ServiceFailed// When Service call fails
    });
  }
4

1 に答える 1

0

JSONP is a hacky solution to cross domain restrictions, it includes a new script tag in the html so the src is automatically parsed by the browser. You cannot disable it.

If you need to fetch XML and they don't provide JSONP or some kind of Cross Domain Request (like CORS) then you will need to setup a proxy. By setting up a proxy you can fetch the data with some other means (like PHP) and then reroute it to whatever page on your domain might need it.

于 2012-10-16T19:55:52.130 に答える