2016-04-17 13 views
0

私はデカップリングされたフロントエンドとバックエンドを持っています。フロントエンドでsubmitボタンを押すと、サーバーにPOST HTTPリクエストを送信したいと思います。提出のためのJavascriptでhttpリクエストを送信中にエラーが発生しました

コード:

$scope.onSave = function() { 
     $http.post('http://localhost:3000/documents', { user: $scope.user, formData: $scope.formData }, function (response) { 
      $scope.isSaved = true; 
      console.log(response); 
      if (response.success) { 
       console.log("It has been successfully saved!") 
      } 
     }); 
} 

はその後、私は

のXMLHttpRequestがhttp://localhost:3000/documentsをロードできないというエラーを取得します。応答 要求をプリフライトするとアクセス制御チェックを通過しません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。したがって、オリジン 'http://localhost:3001'は許可されません。 応答にはHTTPステータスコード404が付きました。

ここでは何がエラーとなりますか?私は本当にそれを理解することはできません。

別の質問: 私はこのウェブサイトにログインしています。ウェブサイトからユーザー情報(ユーザー名や電子メールなど)を取得するにはどうすればよいですか?この情報を得るためにURLヘッダーにアクセスしますか?私はPOST要求を送信すると、サーバーにデータを正常に投稿するために、USER_IDをパラメータとして送信する必要があります。

答えて

0

サーバサイドでクロスドメインアクセスを許可する必要があります(CORS)。

+0

これにより、セキュリティループホールが発生しますか? CORSをjavascriptで許可する方法の例を挙げることはできますか? – Kahsn

+0

サーバサイド(node.js)でjavascriptを使用すると、このようなことができますhttp://stackoverflow.com/a/29921446/2542172 –

+0

フロントエンドでは何もする必要はありませんが、サーバー側では何もする必要はありません? Ruby on Railsを許可する方法を知っていますか?それが私がサーバー用に使用しているものです。 – Kahsn

関連する問題