2016-08-31 13 views
-1

この問題を解決するにはどうすればよいですか? 私は、サーバーへのPOSTリクエストを送信...プリフライト要求への応答がAngularJSのアクセス制御チェックに合格しない

XMLHttpRequest cannot load http://localhost:3000/data-search. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. 

//myservice.js

function setNewSearch(titleParam, ratingParam) { 

      var data = { 
       title: titleParam, 
       rating: ratingParam 
      }; 

      $http.post('http://localhost:3000/data-search', data).then(successCallback, errorCallback); 

      function successCallback(e){ 
       console.log('successCallback ' + JSON.stringify(e)); 
      } 
      function errorCallback(e){ 
       console.log('errorCallback ' +JSON.stringify(e)); 
      } 

     } 

//私のcontroller.js

$scope.newSearch = function(){ 
      NewSearchService.setNewSearch('john', 'white'); 
     }; 

//私のサーバーは:

app.post('/data-search', insertDataSearch); 
function insertDataSearch(req, res) { 

    // Website you wish to allow to connect 
    res.setHeader('Access-Control-Allow-Origin', '*'); 
    // Request methods you wish to allow 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
    // Request headers you wish to allow 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
    // Set to true if you need the website to include cookies in the requests sent 
    // to the API (e.g. in case you use sessions) 
    res.setHeader('Access-Control-Allow-Credentials', true); 

    var newDataSearch = new dataSearch(); 
    newDataSearch.title = req.param('title'); 
    newDataSearch.rating = req.param('rating'); 

    newDataSearch.save(function(err) { 
     if (err) { 
      console.log('Error in Saving newDataSearch: ' + err); 
      throw err; 
     } 
     res.send("Sucess"); 
    }); 
} 
私は$ http.postにパラメータのデータ」を入力したとき

この問題は、私は問題はそのデータかもしれないと思う

答えて

-1

を発生するJavaScriptオブジェクトではなく、有効なJSON

は(setNewSearchでこれを試してみてください)おそらく、あなたのハンドラは、エラーを機能

$http.post('http://localhost:3000/data-search', JSON.stringify(data)).then(successCallback, errorCallback); 
-1

を投げているか、データを処理する他のいくつかの問題ができるように、原点ヘッダで応答から、それを妨げていますか?

関連する問題