0

ui5 アプリケーションのボタンに http get 機能を追加することで、特定の URL が現在稼働しているかどうかを確認しています。

このため、コードは次のとおりです。

        _onButtonPress: function () {

         var xhr = new XMLHttpRequest();

        xhr.open('GET', this.getView().byId("sap_Responsive_Page_0-content-sap_ui_layout_form_SimpleForm-1476966827717-content-sap_m_Input-1476966871600").getValue(), true);
        xhr.send();
        xhr.onreadystatechange = processRequest;
        function processRequest(e) {
if (xhr.readyState == 4 && xhr.status == 200) {
    var response = (xhr.responseText);
    alert(response);    }
}},

URL 入力には、https リクエストのみを使用しています。

しかし、URL に値を入力してボタンをテストすると、

XMLHttpRequest はhttps://my3 ****6.sapbydesign.com/sap/byd/runtime/(入力した URL) を読み込めません。要求されたリソースに「Access-Control-Allow-Origin 」ヘッダーがありません。したがって、オリジン「https://application browser url」へのアクセスは許可されません。

アイデアは、url のステータスを確認し、url ステータスからステータス状態を設定することです。 ここに画像の説明を入力

どうすればこれを防ぐことができますか?? Br スラジ N

4

2 に答える 2

1

これは、クロスサイト リクエスト フォージェリと呼ばれる攻撃のクラスに対するブラウザの保護です。

エラー メッセージで説明されているように、リンクされた Web サイト (この場合はhttps://my3 ****6.sapbydesign.com/sap/byd/runtime/) が適切なAccess-Control-Allow-Originヘッダーを応答に追加しない限り、これを機能させることはできません。 .

于 2017-01-04T09:54:03.990 に答える
0

アプリ (取得を開始するアプリ) がドメイン A でホストされ、サービスがドメイン B でホストされているため、問題が発生しています。セキュリティ上の理由から、ブラウザーではそれができません。

これを修正する 1 つの方法は、サーバーがドメインからの特定の Http 動詞を許可するようにすることです。しかし、サーバー側を制御できなければ、それを行うことはできません。

もう 1 つの方法は、プロキシ サーバーを自分の側で作成し、get 要求を発行しようとしていた元のサーバーにすべての要求を中継するように構成することです。

次に、元のアプリでプロキシ サーバーに get を発行します。

Eclipse で直接行うことができます: http://help.sap.com/saphelp_nw74/helpdata/de/2d/3f5fb63a2f4090942375df80abc39f/content.htm

または、ノードでプロキシを開始することもできます。

https://www.npmjs.com/package/gulp-connect-proxy

于 2017-01-07T19:52:39.227 に答える