7

私はまったくプログラマーではないので、事前に申し訳ありませんが、ウェブを検索しても答えが見つかりません。

このウェブサイトから在庫検索を取得して、Facebook タブに配置しようとしています。Web サイトからコードを取得し、必要のないヘッダーとフッターを TextEdit で編集しました。私は在庫検索の部分だけを取り込もうとしています。

Safari でテストしたところ、動作しているように見えました。在庫検索が表示され、すべてのボタンとフィルターが完全に機能し、別のページに移動すると、ヘッダーとフッターはまだ消えていて、在庫検索だけがそこにありました-完璧です.

ただし、Chrome と Firefox でテストしたところ、ボタンとフィルターはまったく機能せず、最初のページを通過したり、フィルターを適用したりすることはできません。

そこで、サイト (上記のリンクのようなインベントリ検索の最初のページ) にアクセスし、ソース コードをデスクトップに保存して、これを Chrome または Firefox で開いたときに動作するかどうかを確認しましたが、動作しませんでした。 、ボタンまたはフィルターが機能せず、最初のページでスタックしました。しかし、それはSafariで機能しました。

これは何を意味するのでしょうか?今すぐあきらめるべきですか?コードを含めますが、これは私が今まで見た中で最も長いものです。TextEdit を使用して行ったコードのすべてのテスト。

編集:
Chrome のエラーは次のとおりです。

Uncaught SyntaxError: Unexpected token < Chevy.html:4608 XMLHttpRequest cannot load http://www.erikschevrolet.com/searchVehicles.ajax . Origin null は、Access-Control-Allow-Origin では許可されていません。
キャッチされないエラー: XmlRenderEngine = >不明なエラー bundle.js:1 XMLHttpRequest はhttp://www.erikschevrolet.com/searchVehicles.ajaxを読み込めません。Origin null は、Access-Control-Allow-Origin では許可されていません。
キャッチされないエラー: XmlRenderEngine = >不明なエラー bundle.js:1 XMLHttpRequest はhttp://www.erikschevrolet.com/searchVehicles.ajaxを読み込めません。Origin null は、Access-Control-Allow-Origin では許可されていません。
キャッチされないエラー: XmlRenderEngine = >不明なエラー bundle.js:1

4

2 に答える 2

1

これらのChromeの警告はここでは関係ありません。上記のエラーは、クロスオリジンの問題に関するものです。Javascript内からリモートリソースにアクセスすることは非常に邪悪なことであるため、最近のブラウザは、明示的に許可されていない限り、それらをブロックします。

たとえば、http://example.comのほとんどのコンテンツには、http ://example.netドメインのjavascriptからアクセスできません。ほとんどのファイルをダウンロードしてローカルで実行しようとしているが、それでも一部のファイルはhttp://www.erikschevrolet.comドメインのファイルを参照しているため、許可されていません。

AFAIKこの問題を回避するための本当に簡単な方法はありません。最も安全な解決策は、使用されているすべてのファイルをダウンロードし、ローカルパスへの参照を使用してhttp://www.erikschevrolet.comへの参照を手動で変更することです。または、次のようにXMLHttpRequestのwithCredentials値をtrueに設定することもできます(ただし、プログラマーではないため、実際に混乱させる可能性があります...)(http://hacks.mozilla.org/2009/07の例) / cross-site-xmlhttprequest-with-cors /):

var request = new XMLHttpRequest();
var url = 'http://bar.other/resources/credentialed-content/';
function callOtherDomain(){
  if(request)
  {
   request.open('GET', url, true);
   request.withCredentials = "true";
   request.onreadystatechange = handler;
   request.send();
  }
}

また、これらのファイルの多くはサーバー上で動的に生成され、変更される可能性があるため、これでも期待どおりの結果が得られない可能性があります。

于 2012-06-13T00:53:20.533 に答える
0

特定のロード ファイル スキームを使用して、javascript で xml またはテキスト ファイルを読み取る際に問題があるようです。httpのリクエストが機能するブラウザで発生します。この場合、javascriptでの作業などを試すことができます。

if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

これは chrome safari firefox でも動作します。これを試してみてください。

于 2012-07-04T12:42:53.720 に答える