AJAX 及 同源策略/ CORS跨域

栏目: jQuery · 发布时间: 5年前

内容简介:1、http://baidu.com 可以向 http://www.baidu.com 发送请求吗 ???不能!!!要一模一样才行

什么是AJAX

是异步的JavaScript 和 XML

面试题:

请使用原生js来发送AJAX请求

let request = new XMLHttpRequest()
  request.open('get', '/xxx') // 配置request
  request.send()
  request.onreadystatechange = ()=>{
    if(request.readyState === 4){ 
      if(request.status >= 200 && request.status < 300){
        console.log('说明请求成功')
      }else if(request.status >= 400){
        console.log('说明请求失败') 
      }
    }
  }

同源策略

如果你不是 xxxxx.com 里的js 你就不能向这个域名发送 任何ajax请求

只有 协议+端口+域名 一模一样才允许发ajax请求

【注意要】一模一样 一模一样 一模一样 一模一样

1、http://baidu.com 可以向 http://www.baidu.com 发送请求吗 ???

不能!!!要一模一样才行

2、http://baidu.com:80 可以向 http://baidu.com:81 发送 ajax 请求吗???

不能!!!端口不一样

cors 跨域

cors 可以告诉浏览器 不需阻止

非要响应就在服务器写:
    response.setHeader('Access-Control-Allow-Origin','xxxxxx 网址 xxxxxx')

为什么要有同源策略?

因为原页面用form 提交到另一个域名之后,

原页面的脚本无法获取新页面中的内容

所以浏览器认为是安全的

而ajax是可以读取响应内容的

因此浏览器不能允许你这样做(请求已经发出去了 只是没有响应而已)

同源策略的本质是:

一个域名的js

在未经允许的情况下不得读取另一个域名的内容

但浏览器并不阻止你向另一个域名发送请求


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大演算

大演算

佩德羅.多明戈斯 / 張正苓,胡玉城 / 三采 / 2016-8-1 / 620

揭開大數據、人工智慧、機器學習的祕密, 打造人類文明史上最強大的科技——終極演算法! 有一個終極演算法,可以解開宇宙所有的祕密, 現在大家都在競爭,誰能最先解開它! .機器學習是什麼?大演算又是什麼? .大演算如何運作與發展,機器可以預測什麼? .我們可以信任機器學過的東西嗎? .商業、政治為什麼要擁抱機器學習? .不只商業與政治,醫學與科學界也亟需......一起来看看 《大演算》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具