admin管理员组

文章数量:1530036

1. 什么是跨域?

要了解什么是跨域,首先需要知道什么是同源策略。同源策略是由Netscape公司提出的一个注明的安全策略,所有支持JavaScript的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当页面执行一个脚本时会检查访问的资源是否同源,如果非同源,那么在请求数据时,浏览器就会在控制台中抱一个异常,提示拒绝访问。
同源策略一般又分为两种:
DOM同源策略:禁止对不同源页面DOM进行操作。这里主要场景是iframe跨域的情况,不同域名的iframe是限制互相访问的;
XmlHttpRequest同源策略:禁止使用XHR对象向不同源的服务器地址发起HTTP请求。
所以跨域是什么?
跨域,是指在请求一个不属于同源的资源时,这种行为就称为跨域,这是浏览器施加的安全限制。

2. 如何解决跨域请求

我们现在搭建两个web服务,一个监听本地8888端口,一个监听本地8887端口,8888端口返回一个html文件,该html文件中访问了8887端口:
server.js:

const http = require('http')
const fs = require('fs')

http.createServer(function (request, response){
   
  console.log('request url: ', request.url)
  const html = fs.readFileSync('index.html', 'utf-8')
  response.writeHead(200, {
   
    'Content-Type': 'text/html'
  })
  response.end(html)
}).listen(8888)

console.log('server running on 8888')

server2.js:

const http = require('http')

http.createServer(function (request,response){
   
  console.log('request url: ', request.url)
  response.end('123')

本文标签: 协议httpCORS