-1

このトピックで問題が発生しています:Access-Control-Allow-Origin。

私はそれについて読みました、そして私はそれがphpを使って応答を得ることが可能であるとわかりました、ここに

しかし、そのコードをjavascriptに適合させる方法がわかりません。それでも、同じ問題が発生します。

私はこれをjavascriptで試しました:

var url ='http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter';
req=Ajax("getResponse.php/?" + url)
  if (req.status=200)
alert("hi");

そしてphpファイルで:

<?php
echo file_get_contents($_GET['url']); 
?>

そして、何も起こりません。私はajaxで試しました。

$.ajax({
          url: "http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter",
          async: false,
          dataType: 'html',
          success: function (text) {
            alert(text);
          }
        });

しかし、常に同じ問題...

私は同じ問題を抱えているインターネット上の多くの人々を読みましたが、誰も応答を得ません。Chromeと1つのオプションを使用して、2つの方法を見つけましたが、開発者に推奨し、サーバーにヘッダーを追加しましたが、どこに追加するかわかりません。そのローカルホストにapachetomcatcatalinaを使用しています。私は2つのサーバー、ウェブページ(xampp)と残り(tomcat)を持っています

4

1 に答える 1

1

変化する

req=Ajax("getResponse.php/?" + url)

req=Ajax("getResponse.php/?url=" + url)

これは安全ではないことに注意してください.urlパラメーターに何でも渡すことができ、phpスクリプトはそれを使用します. 人々があなたのローカル システムからファイルを読み取ったり、あなたの php スクリプトに悪意のあるファイルを別の場所からダウンロードさせたりすることを可能にする

編集:

これを保護する最善の方法は、アクション リストを使用することです。これは、ユーザーが URL を見ることはなく、アクション ワードのみを変更できることを意味します。例えば

req=Ajax("getResponse.php/?do=getOrders")

次にphpで

$actions = array();
$actions['getOrders'] = "http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter";

if(array_key_exists($_GET['do'], $actions))
 echo file_get_contents($actions[$_GET['do']]);

通常、アクションを URL に変換するだけでなく、追加のパラメーターを渡したい場合もあります。この場合、スイッチまたは一連の IF を使用して、$_GET['do'] が何かと等しいかどうかを確認してから処理できます。ただし、考えられるすべての実装方法の例を示すには数時間かかるため、Google を使用することをお勧めします。

注意: この方法は、スクリプトに 100 倍のセキュリティを追加することを提案していますが、特にユーザーからのパラメーターも渡し始める場合は、確実ではありません。もう一度グーグルを使用してください。

于 2012-08-01T10:11:07.243 に答える