首页 > 编程语言 >javascript的API和跨域问题

javascript的API和跨域问题

时间:2022-09-20 19:22:05浏览次数:68  
标签:返回 浏览器 跨域 javascript 选择器 API document fetch

document.getElementById(),根据ID来精确查找元素

document.querySelectorAll(),根据选择器来查找,返回一个或者多个元素

document.querySelector(),根据选择器来查找,同类多个元素的情况只返回第一个元素

document.querySelector("选择器").textContent:赋值或者得到一个文本格式的字符串,讲HTML当文本处理不显示在页面上

document.querySelector("选择器").innerHtml:赋值或者得到一个HTML的字符串,如果赋值HTML会将HTML效果显示在页面上

obj.content:返回obj页面对象下面的子对象

doucument.importNode(obj,true):复制一个对象,生成一个新对象

下面有一段动态生成页面数据的案例,利用模板<template>来做的

 

 

 

使用fetch(url,options)来获得远程数据:

fetch(url,options)  //返回promise

同步方式:const result = await fetch(url,options)(等待结果返回),await必须放在一个标记了async的function内执行,后续代码不会在结果返回前执行。上面的代码可以修成同步请求方式,如下:

注意:resp.json()得到的还是一个promise对象,所以要得到真正结果,还需要在前面加上await

 

异步方式:fetch(url,options).then((result )=> {...}):后续代码不必等待结果返回就可以执行,

注意:只要返回结果是promise对象,就可以继续调用then来得到结果,这里用了两个then,第一次resp.json()以后返回的还是promise 对象,所以第二次调用then得到真正的结果。

 

 跨域:以上的代码都是请求同源的json文件,不存在跨域的问题,如果要访问不同源的数据怎么办?浏览器会对fetch跨域的响应数据进行同源检查,如果响应数据不同源则会报错。跨域访问浏览器报错如下:

 

 

产生以上错误的访问的流程如下:

 

 

 解决跨域,方法一:配置服务器响应头

发生跨域的时候浏览器默认在请求头中添加"Origin:http://localhost:7070"意思是我是这个来源的请求,服务器端允许不允许跨域访问,如果服务器允许跨域,则需要配置响应头"Access-Control-Allow-Origin:http://localhost:7070"或者"Access-Control-Allow-Origin:*"(前者是仅允许某个源头请求,后者允许所有源头都可以请求),浏览器得到这个响应头则接收数据。

 解决跨域,方法二:使用代理,不需要再跨越访问,只需要在同源服务器配置代理,然后由代理去跨域,就可以解决浏览器检查跨域的问题了。如下图:

 

 

 

 

 

 

标签:返回,浏览器,跨域,javascript,选择器,API,document,fetch
From: https://www.cnblogs.com/tangwei-fuzhou/p/16711940.html

相关文章

  • JavaScript 工具函数:随机取自然数
    functionrandomUint(max){returnMath.floor(Math.random()*max);}Math.random()*max返回的是大于0的浮点数,不能四舍五入取整。用Math.floor()对上一个结果......
  • 前端面试题JavaScript篇——2022-09-20
    每日3题1以下代码执行后,控制台中的输出内容为?//index.jsconsole.log(1);import{sum}from"./sum.js";console.log(sum(1,2));//sum.jsconsole.log(2);exp......
  • 什么是跨域问题?如何解决?
    跨域问题指的是不同站点之间,使用ajax无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。但这个保护机制也......
  • .NET 6 EFCore WebApi 使用 JMeter 进行吞吐量测试
    .NET6EFCoreWebApi使用JMeter进行吞吐量测试开发环境VS2022.NET6测试环境测试工具接口压力测试工具:JMeter数据库MySQL5.7数据库和WebApi服务在同一台服务......
  • JavaScript中 with的用法
    文章是本人大三期间的学习笔记,一些论断取自书籍和网上博客,碍于当时的技术水平有一些写得不够好的地方,可以在评论处理智讨论~说起js中的with关键字,很多小伙伴们的第一印象......
  • JavaScript中new Object()是什么?
    https://blog.csdn.net/GreyBearChao/article/details/78689982https://blog.csdn.net/weixin_45916711/article/details/109542980语法:newObject(value)newObject()将......
  • JavaScript 声明提升
    函数及变量的声明都将被提升到函数的最顶部。变量可以在使用后声明,也就是变量可以先使用再声明。声明提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最......
  • JavaScript 错误 - throw、try 和 catch
    try 语句测试代码块的错误。catch 语句处理错误。throw 语句创建自定义错误。finally 语句在try和catch语句之后,无论是否有触发异常,该语句都会执行。语法tr......
  • JavaScript:David Flanagan 的权威指南
    JavaScript:DavidFlanagan的权威指南JavaScript:DavidFlanagan的权威指南[JavaScript:权威指南-Twos表达式是可以被评估以产生值的短语。语句是以…结尾的完整句子......
  • JavaScript 正则表达式
    正则表达式:      [email protected]      -正则表达式用于定义一些字符串的规则,        计算机可以根据正则表达式,来检查一......