以最简单的方式使用fetch-API时,Chrome无法正确收集垃圾.难道我做错了什么?
for (i = 0; i < 100; i++) {
fetch('https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg')
.then(response => {
console.log('Memory-bloating')
})
}
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/dozrpcvj/12/
这个JSFiddle用1.4GB填充内存,直到手动垃圾收集或关闭选项卡才会释放.如果你将迭代次数增加到1000,它"下载"14GB(来自自己的磁盘)而不是垃圾收集,它开始填充磁盘上的交换文件.
我做错了什么或这是Chrome中的错误?在使用Safari进行测试时,它还会使用1.4GB的硬盘驱动器,但一旦完成就会开始进行垃圾回收.
PS.您不能使用内存分析器,因为它告诉您只使用几MB的数据,即使活动监视器或Chromes自己的任务管理器说1.4GB.
后端退货
Access-Control-Allow-Headers: *
Run Code Online (Sandbox Code Playgroud)
我有一个要求
fetch('url-here', {
// ...
headers: {
'X-Auth': token,
}
})
Run Code Online (Sandbox Code Playgroud)
它可以在Chrome中使用,但对于Firefox,
跨域请求被阻止:同源策略禁止在<... cut ...>处读取远程资源。(原因:CORS预检通道的CORS标头“ Access-Control-Allow-Headers”中缺少令牌“ X-Auth”)。 ..cut ...>。(原因:CORS请求未成功)
我正在使用selectionStartandselectionEnd来获取文本选择的起点和终点。
代码: https: //codesandbox.io/s/busy-gareth-mr04o
然而,我正在努力定义可以调用它们的事件类型。如果我使用any,代码可以正常工作,但我更想知道正确的事件。
我尝试过这些类型:
Element
React.SyntheticEvent<HTMLDivElement>
<HTMLDivElement>
没有运气
export default function App() {
const [startText, setStartText] = useState<number | undefined>();
const [endText, setEndText] = useState<number | undefined>();
const handleOnSelect = (event: any) => { <--- I CANNOT FIND THE RIGHT EVENT TYPE
setStartText(event.target.selectionStart);
setEndText(event.target.selectionEnd);
};
return (
<Grid container direction="column" className="App">
You can type here below:
<TextField
value={"This is a example, select a word from this string"}
onSelect={(event) => handleOnSelect(event)}
/>
<br …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用 Express、cors 和头盔。Vue3仅在客户端使用,库文件自托管在public文件夹中。我只是做
<script type="module" src="/public/lib/vue.esm-browser.js"></script>
Run Code Online (Sandbox Code Playgroud)
将模块添加到客户端。问题是,当我使用它时,它总是给我一个Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'". 这个问题是昨天突然开始的,当我开始使用头盔和cors模块时,即使我注释掉这些模块,它仍然显示错误。我应该解决什么问题?
我是TypeScript的新手,但在C#中有一个背景,我对如何处理TypeScript模块有点困惑.我一直在考虑将模块作为C#中的命名空间,但这可能是错误的,因为我的代码行为不像我期望的那样.
我有以下文件夹结构:
|-myApp
| |-myController
| | |-myController.ts
| |-models
|-a.ts
|-b.ts
Run Code Online (Sandbox Code Playgroud)
而这段代码:
// a.ts
module MyApp.Models {
export class A {
}
}
// b.ts
module MyApp.Models {
export class B {
}
}
// myController.ts (THIS DOESN'T WORK)
module MyApp.MyController {
import Models = MyApp.Models;
class MyController {
a = new Models.A();
b = new Models.B();
}
}
// myController.ts (THIS WORKS)
module MyApp.MyController {
class MyController {
a = new Models.A();
b = new Models.B();
}
} …Run Code Online (Sandbox Code Playgroud) Spring @CrossOrigin 注释不适用于 DELETE 方法。
示例代码(在 Groovy 中):
@CrossOrigin
@RestController
@RequestMapping('/rest')
class SpringController {
@RequestMapping(value = '/{fileName}', RequestMethod.DELETE)
void deleteFile(@PathVariable fileName) {
// logic
}
}
Run Code Online (Sandbox Code Playgroud)
对于这段代码,我得到了异常:
XMLHttpRequest 无法加载http://localhost:8080/rest/filename.txt。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin ' http://localhost:4200 '。响应具有 HTTP 状态代码 404。
笔记:
@CrossOrigin(methods =
[RequestMethod.GET, RequestMethod.DELETE])没有帮助我试图通过设置 Content-Security-Policy 标头来减轻 XSS 攻击,但 Chrome 不断抛出错误:
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' 'nonce-Njg3MGUxNzkyMjViNDZkN2I3YTM3MDAzY2M0MjUxZGEzZmFhNDU0OGZjNDExMWU5OTVmMmMwMTg4OQ3ZmY.” 启用内联执行需要“unsafe-inline”关键字、散列(“sha256-...”)或随机数(“nonce-...”)。
我尝试设置 nonce,<script nonce="Njg3MGUxNzkyMjViNDZkN2I3YTM3MDAzY2M0MjUxZGEzZmFhNDU0OGZjNDExMWU5OTVmMmMwMTg4NTA3ZmY4OQ==" href="main.js"></script>但它不起作用。
这是我的Content-Security-Policy标题:
default-src 'none';
script-src 'self' 'nonce-NjJjN2E5YjA0ZDJhNDlhZjlhMDFmZjQzMjE4YzhmMTAzOWNjZjVjMGZjNDIxMWU5YWIyNGMwMTg4NTA3ZmY4OQ==';
connect-src 'self' https://vimeo.com;
img-src 'self';
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
font-src 'self' https://fonts.gstatic.com;
media-src 'self' http://player.vimeo.com;
frame-src 'self' http://player.vimeo.com;
Run Code Online (Sandbox Code Playgroud)
我不喜欢设置script-srcas unsafe-inline,因为它使 Content-Security-Policy 无效
当我在浏览器(尝试过 chrome、firefox 和 edge)的控制台(在开发人员工具中)中使用以下 js 片段时,在获取发送 cookie 时遇到问题:
fetch('http://127.0.0.1:3010/check', {
credentials: 'include'
method: 'GET'
})
.then(res=>res.json())
.then(jsonobj=>{console.log(jsonbj)});
Run Code Online (Sandbox Code Playgroud)
这是我处理 api 请求的快速代码:
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var cors = require('cors');
var app = express();
app.use(cors({
credentials: true,
origin: 'https://www.youtube.com'
));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.get('/check', (req, res)=>{
console.log(JSON.stringify(req.cookies));
res.json({
message: "COOL"
});
});
Run Code Online (Sandbox Code Playgroud)
fetch 调用成功,消息 COOL 被记录到浏览器控制台。但是,NodeJS 控制台会打印空对象 {} 或空 cookie。
例如,当我在http://youtube.com/的控制台中运行获取请求时,我希望浏览器将本地主机上的 cookie 发送到我的快速服务器(我这样做是为了模拟跨站点请求中的 cookie 发送) )。
编辑 1:我的本地主机上的一些 …
我遇到了 CORS 问题,但似乎无法解决。
我的设置:
我想做的是......用户将他的电子邮件输入到Hotspot入口页面,当他单击提交时,电子邮件被发送到网络服务器(当前使用XAMPP),这就是CORS问题发生的地方。
跨源请求被阻止:同源策略不允许读取http://myIpAddress:8080/DBinsert.php处的远程资源。(原因:CORS 标头“Access-Control-Allow-Origin”丢失。
以前我已经header('Access-Control-Allow-Origin: *');设置过并且没有 CORS 问题......
我尝试将此代码添加到我的 php 的最开头,但它仍然不起作用......
header('Access-Control-Allow-Origin: http://10.5.50.*');
我也尝试过
header('Access-Control-Allow-Origin: http://10.5.50.*:8080');
但它不起作用...
计算机IP是10.5.50.3
欢迎任何帮助和解释。
谢谢。
如何在 Blazor Web assembly 中通过 HttpClient 使用 HTTP 请求标头Sec-Fetch-Mode: no-cors发出请求?
我的实际代码是:
var hc = new HttpClient();
var responseHTTP = await hc.GetAsync("https://www.somedomain.com/api/");
Run Code Online (Sandbox Code Playgroud)
但这会产生以下 HTTP 请求标头:
:authority: www.somedomain.com
:method: GET
:path: /api/json?input=test&key=AIzaSyDqWvsxxxxxxxxxxxxxxxxx1R7x2qoSkc&sessiontoken=136db14b-88bd-4730-a0b2-9b6c1861d9c7
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
origin: http://localhost:5000
referer: http://localhost:5000/places
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36
x-client-data: CJS2yQxxxxxxxxxxxxxxxxxxxxxxxxygEI7bXKAQiOusoBCObGygE=
Run Code Online (Sandbox Code Playgroud) javascript ×7
cors ×3
typescript ×2
cookies ×1
cross-domain ×1
express ×1
fetch ×1
fetch-api ×1
http-delete ×1
http-headers ×1
import ×1
material-ui ×1
memory-leaks ×1
module ×1
namespaces ×1
node.js ×1
reactjs ×1
spring ×1
spring-mvc ×1
vuejs3 ×1