No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.

代码段:

    // 接口地址:http://api.apiopen.top/getJoke
    
    // 1. 创建对象
    const xhr = new XMLHttpRequest()
    
    // 2. 初始化
    xhr.open("GET", "http://api.apiopen.top/getJoke")
    
    // xhr.setRequestHeader("Access-Control-Allow-Origin","*")
    // 3. 发送
    xhr.send()
    
    // 绑定事件,处理响应结果
    xhr.onreadystatechange = function () {
      // 判断
      if (xhr.readyState === 4) {
        // 判断响应状态码 200-299
        if (xhr.status >= 200 && xhr.status < 300) {
          // 表示成功
          console.log(xhr.response)
        } else {
          console.error(xhr.status)
        }
      }
    }

错误显示:

翻译为:

通过CORS策略已阻止从源“ http://127.0.0.1:8848”访问“ http://api.apiopen.top/getJoke”处的XMLHttpRequest:不存在“ Access-Control-Allow-Origin”标头 在请求的资源上。

      在网上找了许多解决方案,大多是从后台解决跨域的问题,但现在的情况只是处理一个小测试出现的跨域问题,并不涉及后台程序。其他方案并不适用。

解决:

      将下面的代码改为xhr.open("GET", "https://api.apiopen.top/getJoke")即可,我的问题是这样解决的。

xhr.open("GET", "http://api.apiopen.top/getJoke")

      如果对于你的不适用,推荐一篇文章 AJAX跨域解决   , 这篇文档讲解的蛮详细的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值