GET file:///D:/Users/121/Desktop/getOrder/%7B%7Bpic%7D%7D net::ERR_FILE_NOT_FOUND
时间: 2023-08-02 09:08:07 浏览: 191
这个错误提示表明浏览器在尝试加载请求的资源时发现了一个文件未找到的错误。根据您提供的错误信息,请求的资源路径是 `file:///D:/Users/121/Desktop/getOrder/{{pic}}`。
这个错误通常发生在浏览器试图加载本地文件系统中的文件时,但找不到该文件。在这种情况下,浏览器会尝试解析请求的文件路径,并根据路径查找相应的文件。如果文件不存在,就会触发 `ERR_FILE_NOT_FOUND` 错误。
可能的原因是您提供的文件路径是无效的。请确保您提供的路径正确,并且存在名为 `{{pic}}` 的文件。另外,还要确认您使用的是正确的文件协议(如 `file://`)以及正确的文件路径格式。
如果您希望加载网页中的图片或资源,通常建议将资源放置在 Web 服务器上,并使用相对或绝对 URL 来引用它们。这样可以避免直接使用本地文件路径造成的问题,并确保资源能够被正确加载。
请提供更多关于您的具体场景和代码上下文的信息,以便我能够更好地帮助您解决问题。
相关问题
<!DOCTYPE html> <html> <head> <title>订单事件列表</title> <link rel="stylesheet" type="text/css" href="./css/style.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- ajax 传输方式为post --> <script> window.onload = function () { // setInterval(Action) setTimeout(Action, 1000); } Action = function () { $.ajax({ url: "http://127.0.0.1:8088/admApi/getOrder", type: "get", success: function (data) { console.log('data'); console.log(data); // var orders = JSON.parse(data); var obj = new Function("return" + data)();//转换后的JSON对象 var orders = eval(obj); for (var i = 0; i < orders.length; i++) { var order = orders[i]; var username = order.username; var account = order.account; var orderName = order.orderName; var time = order.time; var html = "<tr><td>" + username + "</td><td>" + account + "</td><td>" + orderName + "</td><td>" + time + "</td></tr>"; $("#order-list").append(html); } console.log(data); } }); } // $(document).ready(function(){ // $.ajax({ // url: "http://127.0.0.1:8086/admApi/getOrder", // type: "get", // success: function(data){ // var orders = JSON.parse(data); // for(var i = 0; i < orders.length; i++){ // var order = orders[i]; // var username = order.username; // var account = order.account; // var orderName = order.orderName; // var time = order.time; // var html = "<tr><td>" + username + "</td><td>" + account + "</td><td>" + orderName + "</td><td>" + time + "</td></tr>"; // $("#order-list").append(html); // } // console.log(data); // } // }); // }); </script> </head> <body> <table> <thead> <tr> <th>用户名</th> <th>账号</th> <th>订单名称</th> <th>时间</th> </tr> </thead> <tbody id="order-list"> </tbody> </table> </body> </html>
这段代码是一个使用ajax请求获取订单数据并将其展示在网页上的前端页面代码。其中通过jQuery库中的ajax方法向http://127.0.0.1:8088/admApi/getOrder发送get请求,获取到订单数据后解析为JSON对象,然后循环遍历其中的每个订单并将其数据拼接到html中,最后使用jQuery的append方法将拼接好的html添加到tbody元素中展示出来。同时,页面中也引入了一个style.css文件来控制页面的样式。
以下代码是什么意思/* * sonic-server Sonic Cloud Real Machine Platform. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package org.cloud.sonic.gateway.config; import com.alibaba.fastjson.JSONObject; import org.cloud.sonic.common.http.RespEnum; import org.cloud.sonic.common.http.RespModel; import org.cloud.sonic.common.tools.JWTTokenTool; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import java.nio.charset.StandardCharsets; import java.util.List; @Component public class AuthFilter implements GlobalFilter, Ordered { @Value("${filter.white-list}") private List<String> whiteList; @Autowired private JWTTokenTool jwtTokenTool; @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { for (String white : whiteList) { if (exchange.getRequest().getURI().getPath().contains(white)) { return chain.filter(exchange); } } String token = exchange.getRequest().getHeaders().getFirst("SonicToken"); ServerHttpResponse response = exchange.getResponse(); response.getHeaders().add("Content-Type", "text/plain;charset=UTF-8"); DataBuffer buffer = sendResp(response); if (token == null) { return response.writeWith(Mono.just(buffer)); } // verify token if (!jwtTokenTool.verify(token)) { return response.writeWith(Mono.just(buffer)); } return chain.filter(exchange); } @Override public int getOrder() { return -100; } private DataBuffer sendResp(ServerHttpResponse response) { JSONObject result = (JSONObject) JSONObject.toJSON(new RespModel(RespEnum.UNAUTHORIZED)); DataBuffer buffer = response.bufferFactory().wrap(result.toJSONString().getBytes(StandardCharsets.UTF_8)); return buffer; } }
这段代码是一个Spring Cloud Gateway中的全局过滤器,用于对请求进行身份认证和授权处理。代码中包含以下主要内容:
1. 声明了一个名为AuthFilter的组件,并实现了GlobalFilter和Ordered接口。
2. 通过@Autowired注解注入了JWTTokenTool类的实例和通过@Value注解注入了白名单列表。
3. 实现了filter方法,该方法会在每个请求到达网关时被调用。
4. 首先,根据白名单列表判断当前请求是否在白名单内,如果是,则直接放行。
5. 如果不在白名单内,则尝试从请求头中获取名为"SonicToken"的token。
6. 创建一个ServerHttpResponse对象用于返回响应,并设置Content-Type为"text/plain;charset=UTF-8"。
7. 如果没有获取到token,则返回未授权的响应。
8. 如果获取到了token,则使用JWTTokenTool类对token进行验证,如果验证失败,则返回未授权的响应。
9. 如果验证通过,则继续执行后续的过滤器链。
10. 实现了getOrder方法,用于指定过滤器的执行顺序,返回-100表示该过滤器具有最高优先级。
11. 实现了sendResp方法,用于构建未授权响应的内容。
总体来说,这段代码实现了对请求进行身份认证和授权的功能,并根据配置的白名单进行特殊处理。如果请求没有经过认证或授权,将返回未授权的响应。
阅读全文