1

Herokuで実行されているRails足場プロジェクトへの単純な.ajax投稿があります。

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">    </script>
</head>
<body>
    <script>
    $(document).ready(function(){
        $.ajax({
            type: 'POST', url: "http://herokuserver/images.json",
            data: { image: { name: "johngalt1" } }
        });
    });
    </script>
</body>

Chromeでjavascriptコンソールを使用していることが判明すると、次のようになります。

 XMLHttpRequest cannot load http://herokuServer/images.json. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

ただし、herokuのrailsアプリにアクセスすると、=>"johngalt1"という名前の新しいレコードが作成されています。私が読んだすべてのことから、javascriptのクロスドメインの問題により、レコードの作成が妨げられ、json-pまたはCORSを使用する必要があると思いましたか?または、JavaScriptのクロスドメインの問題により、JavaScriptを介してサーバーからデータを受信できないだけですか?

4

1 に答える 1

0

ブラウザがデータを受信できないようにするだけです。したがって、この投稿からの返信が必要ない場合は、大丈夫です。

編集-ローカルで開発しているときは、この制限を回避するために、Mac上のApache2サーバーの書き換えルールを作成します。ブラウザをだましてクロスドメインリクエストを許可するリバースプロキシを作成します。

于 2012-04-18T15:19:15.127 に答える