1

Sinatra アプリから Rails アプリに POST リクエストを送信する必要があります。これにより、json が返されます。この機能をローカルでテストしています。URL は次のとおりです。

Rails app : railsapp.mydomain.com/api/v1.json
Sinatra app: sinatraapp.mydomain.com

localhost では、URL は次のとおりです。

Rails app: localhost:3000/api/v1.json
Sinatra app:localhost 3001

ローカルで実行されている私のsinatraアプリでは、POSTリクエストをローカルで行うための次のコードがあります

$("#submit").click(function(){
   $.post("http://localhost:3000/api/v1.json",
     {email:"<email_here>",password:"<password_here>"},
     function(data) {
         //Do something with response
     }
   );

});

また、Content-Typeリクエスト ヘッダーの は である必要があります"application/x-www-form-urlencoded"。Firefox で REST クライアントを使用してリクエストをテストしたところ、動作しましたが、上記のコードではリクエストがまったく行われていません。私のコードのエラーは何ですか?

ありがとうございました

4

2 に答える 2

3

次の設定を行うこともできます。

jQuery.support.cors = true;

これにより、jQuery を使用してクロスドメイン呼び出しを行うことができます。要求ヘッダー Access-Control-Allow-Origin を使用して脆弱性を追加しているため、これはおそらく最善の解決策ではありません。

于 2012-10-10T06:46:15.690 に答える
1

これはXSS攻撃として停止されています。それらは同じドメイン上にありますが、サブドメインは異なり、それで十分です。詳細については、「サブドメインへのAJAX呼び出しはクロスサイトスクリプティングと見なされますか?」を参照してください。

これを修正するには、AJAXをローカルコントローラーにヒットさせ、rubyを使用してリクエストを行うことができます。これは上記の制限によって制限されません。

于 2012-10-10T06:32:52.300 に答える