2014-03-02 6 views
0

게시 요청에서 405 (METHOD NOT ALLOWED)가 표시됩니다. jsonp는 GET 요청에 대해서만 작동하며, CORS를 사용해야 할 가능성이 가장 높습니다. 내 자바 스크립트 파일을 통해 CORS를 사용할 수있는 방법이 있습니까? 또는 별도의 서버 측 브리지를 만드는 것을 포함하지 않는 방법이 있습니까? 여기에 아약스 요청에 대한 코드는 다음과 같습니다405 jQuery()에서 오류 (메서드가 허용되지 않음) POST

function getData(){ 
    var myUrl = 'http://text-processing.com/api/sentiment/'; 
    var searchTerm = "happy"; 

    $.ajax({ 
     url: myUrl, 
     type: 'POST', 
     data: { 'text' : searchTerm }, 
     dataType: 'jsonP', 
     error: function(msg) { 
      console.log(msg); 
     }, 
     success: function(response){ 
      console.log("it worked"); 
      console.log(response); 
     } 
    }); 
} 
getData(); 
+3

CORS가 서버에서 활성화되어야합니다 ... 클라이언트 측에서 많은 일을 할 수 없습니다 .... http://stackoverflow.com/questions/3076414/ways-to-circumvent-the- 동일 출처 정책 –

답변

0

당신이 ExpressJS 를 사용하는 크로스 도메인 수 있도록하는 방법이 경우 :이 문을 요구 한 후, 당신이 게시 된 파일에서

는, 이 코드를 여기에 추가하십시오 : 예시 : 사용자가 경로를 얻은 후에 파일의 시작 부분에 user.js에 게시하고 있습니다. 특정 요청을

router.all('*', function(req, res, next) { 
     res.header("Access-Control-Allow-Origin", "*"); 
     res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
     next(); 
    }); 

나이 :

var router = express.Router(); 

router.all('*', function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
    res.header("Access-Control-Allow-Methods", "PUT, GET,POST,OPTIONS"); 
    next(); 
}); 

사실, 당신은 추가 할 수 있습니다

router.all('/', function(req, res, next) { 
      res.header("Access-Control-Allow-Origin", "*"); 
      res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
      next(); 
     }); 

그러나 나는이 그렇게 안전하지라고 생각합니다. 내가 지금하고있는 것처럼 최선의 사용법을 연구하는 것처럼 연구를 할 수는 있지만 테스트 용으로 사용하고 나중에 변경할 수 있습니다. 적어도, 당신은이 부분에 걸리지 않을 것입니다.

소스 : http://enable-cors.org/server.html

http://enable-cors.org/server_expressjs.html

행운을 빕니다! ;)

관련 문제