저는 장고 시스템을 개발하고 있으며 실시간으로 채팅 서비스를 만들어야합니다. 이를 위해 node.js와 socket.io를 사용했습니다.Ajax가 노드에서 django를 호출합니다.
django에서 노드로 일부 정보를 얻으려면 모든 주소가 localhost
일 때 매우 효과적이었던 일부 아약스 호출을 만들었지 만 이제는 시스템을 webfaction에 배포하여 일부 오류가 발생하기 시작했습니다.
djando 서버의 URL은 example.com
이고 노드 서버는 chat.example.com
입니다. 나는 아약스 내가 브라우저에이 오류가 장고에 전화를받을 수 있도록하는 경우 :
XMLHttpRequest cannot load http://chat.example.com/socket.io/?EIO=3&transport=polling&t=1419374305014-4. Origin http://example.com is not allowed by Access-Control-Allow-Origin.
은 아마 좀 개념을 오해하지만 난 어느 쪽을 알아내는 힘든 시간을 보내고 있습니다.
나는 문제가 생각하는 조각이 하나입니다
socket.on('id_change', function(eu){
sessionid = data['sessionid']
var options = {
host: 'http://www.example.com',
path: '/get_username/',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': sessionid.length
}
}
var request = http.request(options, function(response) {
response.on('data', function(msg){
console.log('Received something')
if(response.statusCode == 200){
//do something here
}
}
})
})
request.write(sessionid);
request.end();
});
그리고 socket.io.js
를 제공하고 노드 서버에 대한 연결을 관리하기 때문에 설정의이 부분은 괜찮습니다.
대단히 감사합니다!
django에 대한 ajax 호출의 응답에는'Access-Control-Allow-Origin : http : // chat.example.com'이 포함되어야하며 그렇지 않은 경우에는? 그리고 당신은 내가 장고에서 그것을 어떻게 할 것인지에 대한 어떤 생각을 가지고 있습니까? 감사 – user2449798