2017-01-04 21 views
0

私のui5アプリケーションのボタンにhttp get機能を追加することで、特定のURLが現在有効かどうかを確認しています。このため要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。したがって、Originはアクセスを許可されていません

は、コードは以下の通りです:

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); } 
}}, 

、我々はHTTPS要求のみを使用しています。

しかし、私はURLに値を入れて、ボタンをテストするとき、 は私が取得、

のXMLHttpRequestがhttps://my3 **** 6.sapbydesign.com/sap/byd/runtime/(entered URLをロードすることはできません) 。 'アクセス制御許可原点'ヘッダーが要求されたリソース上に存在します。 Origin 'https://application browser url'はアクセスできません。

URLのステータスを確認し、ステータスステータスをURLステータスから設定します。 enter image description here

これを防ぐにはどうすればよいですか? Br Suraj N

答えて

1

これは、Cross-Site Request Forgeriesという攻撃の種類に対するブラウザの保護です。

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

+0

を、あなたはこれがにある何かであることを、示唆していますサーバー側から行う必要がありますか? – dexter

+0

@dexter sapdesign.comのウェブサイトがあなたの管理下にある場合は、適切なヘッダーをレスポンスに追加することができます。 – Phylogenesis

0

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

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

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

元のアプリでは、プロキシサーバーにgetを発行します。 http://help.sap.com/saphelp_nw74/helpdata/de/2d/3f5fb63a2f4090942375df80abc39f/content.htm

それともあなたが同様にノード上のプロキシを起動することができます:

あなたは日食で直接それを行うことができますので、

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

+0

お返事いただきありがとうございます。 サーバーはSAPクラウドでホストされており、HCP試用版で利用可能なSAP WebIDEを使用しています。 接続方法はありますか? 多分SSL証明書をアカウントにインポートしてください?! – dexter

+0

[this](https://sapui5.netweaver.ondemand.com/1.34.7/docs/guide/44062441f3bd4c67a4f665ae362d1109.html)チュートリアルを確認してください。 SAP WEB IDEでプロキシを設定する方法について説明します。基本的には、あなたのIDEでいわゆる「宛先」を作成します。これはプロキシとして機能します。私は "プロキシ設定"について述べたリンクで検索してください。 –

+0

こんにちは@Geraldo、それは1つの可能性がありますが、我々は多くのテナントを持っています..これはすべてを追加することを意味するでしょう(例えば、100人のテナントの100の目的地)。 BYDテナントのssl証明書をHCPに追加しますか? – dexter

関連する問題

 関連する問題