Node.Jsのドメイン横断問題を解決する.

2948 ワード

ドメインをまたぐ:パーソナルで理解する現象としては、パーソナルコンピュータはサイトに相当し、ローカルのhtml文書にjsコードが書いてあります.そのurlアドレスはwww.baidu.com(またはローカルサーバアドレス)を要求します.
投げ異常: オリジン'null'is therefore not allowed access.
解決:NodeJsにとって、jsサーバページにコードを追加する:
res.setHeader("Access-Control-Allow-Origin", "*"); 
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.setHeader("X-Powered-By",' 3.2.1');
res.setHeader("Content-Type", "text/html"); 
完全な例:
node.jsサーバコード:
var http=require("http")
var fs = require('fs')
var server=http.createServer();
server.on('request',function(req,res){

res.setHeader("Access-Control-Allow-Origin", "*"); 
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.setHeader("X-Powered-By",' 3.2.1');
res.setHeader("Content-Type", "text/html"); 

    if(req.url === "/login"){
          fs.readFile('./login.html','utf-8',function(err,data){
        	if(err){
        		console.log(err)
        	}
        	res.end(data)         
        }) 

    }
    
})


server.listen(1337,"localhost",function(){
    console.log("    ...");
});
.ajaxに基づくサーバ要求:



	
	Document
	
    


	
	
jsコード:
$(function(){
  $('input').load('http://localhost:1337/login',function(response,status,xhr){
	  $('#box').html(response);
  });
});
ローカルホストが されているhtmlページ:



	Document


	

--------------
Jsonデータを します
var http=require("http")
var fs = require('fs')
var url = require('url')
var server=http.createServer();
server.on('request',function(req,res){

res.setHeader("Access-Control-Allow-Origin", "*"); 
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.setHeader("X-Powered-By",' 3.2.1');
res.setHeader("Content-Type", "application/json"); 
    
     var result = url.parse(req.url,true).query
     console.log(result.id)
    if(req.url === "/login"){
          fs.readFile('./login.html','utf-8',function(err,data){
        	if(err){
        		console.log(err)
        	}
        	res.end('{"id":12,"user":"zhangsan"}')    //json        ""     
        }) 

    }
    
})


server.listen(1337,"localhost",function(){
    console.log("    ...");
});