2011-01-20 3 views
0

私は複数のアプリケーションに使用されるバグ追跡アプリケーションを持っています。 アプリケーションではを使用して、tickets_controllerがfaceboxに新しいフォームをレンダリングしています。rails 3別のアプリケーションからのajax応答

これは、同じアプリケーションでこれを行うとうまくいきます。 はそれを明確に言って、バグトラッカーがlocalhost:3000上で実行されていて、クライアントアプリケーションがlocalhost:3001

上で実行されている。しかし作るために、私は、AJAX要求を介しlocalhost:3001からlocalhost:3000/tickets/newをヒットした場合。フォームにはまったくロードされません。 をlocalhost:3001アプリに入れて、localhost:3000/tickets/newで更新しようとしましたが、うまくいきません。

追加する必要があるものはありますか?

答えて

2

これは、XMLHttpRequestポリシーとそのsame originポリシーの制限によるものです。簡単に言えば、AJAX経由でクロスサイトリクエストを行うことはできません(ポート番号は元の定義の一部なので、あなたのケースです)。

この問題を解決するには、いくつかの対処法があります。たとえば、次のようにします。 JSONPまたはプロキシWebサービスThis articleは可能な解決策のいくつかを要約しています。

+0

ありがとうミラノ..。 – Pravin

0

Faceboxの例では、XHR/AJAX経由でリモートページのコンテンツが読み込まれるようです。これは、同じドメイン/ポート上のページでのみ実行できます。

シナリオでは、ページをiFrameに読み込む必要があります。 Faceboxがそうすることができるかどうかはわかりません。 Fancyboxを確認してください。実装が簡単です。

+0

まあ、私はこれがfaceboxの問題ではないと思います。私が質問したところでは、「localhost:3001アプリにdivを入れて、localhost:3000/tickets/newから更新してみましたが、どちらもうまくいきませんでしたが、まだfancyboxを試してみます。たとえそれが動作しても、divの更新で未解決の問題が残っています。ありがとう.. – Pravin