小编sid*_*ker的帖子

向 oauth2 访问令牌发出 Ajax 请求时出现 CORS 问题

我正在从我的客户端向 google oauth 2 API'https://accounts.google.com/o/oauth2/auth?redirect_uri=http://blah.com&response_type=token&client_id....'进行ajax 调用以获取访问令牌,但出现以下错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源 ' http://blah-blah.com '

我希望调用是 ajax,以便在调用时不会打扰用户,url或者window.location.href换句话说,我如何获取访问令牌以使整个页面不加载,并且是否可以解决上述问题错误???

ajax oauth google-api cors oauth-2.0

5
推荐指数
1
解决办法
5738
查看次数

CORS策略是否会阻止非浏览器请求的资源访问?

根据我的理解,使用CORS模块将从Access-Control-Allow-Origin资源中删除标头,导致XmlHttp请求从浏览器失败.

但是,这是否会阻止来自CURL或其他本机应用程序/ Web服务器的Http请求(即通过PHP编写并运行的请求)成功从该资源检索数据?

cors asp.net-core

5
推荐指数
1
解决办法
1441
查看次数

角拦截器和CORS

我正在尝试编写一个拦截器,以使用Angular向所有HTTP请求添加令牌。我大致使用这里给出的食谱-https: //thinkster.io/interceptors

因此代码使用http模块工厂和一个tokenInterceptor()函数。我可以成功地将令牌添加为请求的标头-但是现在,当令牌通过拦截器时,它会被某种CORS阻止机制阻止。我在Chrome控制台中收到此错误-

XMLHttpRequest无法加载http://127.0.0.1:/。对预检请求的响应未通过访问控制检查:请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://127.0.0.1:/ ”。响应的HTTP状态码为403。

我尝试将拦截器如下所示的访问控制允许源标头设置为无效:

config.headers['Access-Control-Allow-Origin'] = '*';
Run Code Online (Sandbox Code Playgroud)

我在网上尝试了一些建议,但没有帮助。要解决与CORS相关的问题,客户端是否需要做任何事情-还是服务器方面的问题?

javascript interceptor http-headers cors angularjs

5
推荐指数
1
解决办法
3261
查看次数

使用带有模糊的 setSelectionRange - Chrome 和 Safari 中的差异

我正在尝试修复具有 onblur 事件侦听器的代码,该事件侦听器执行 setSelectionRange。我注意到,在 Chrome 上使用此功能时,模糊事件会将光标移动到下一个选项卡索引。然而,在 safari 上,光标保留在同一元素上,并且光标移动到 setSelectionRange 中指定的位置。

问题:

  1. 在执行模糊事件时我是否应该使用 setSelectionRange ?
  2. 有什么方法可以在两个浏览器上一致地使用 setSelectionRange 即我可以使 Safari 以与 Chrome 相同的方式工作吗?

下面是一段 hello world 代码,显示了当我在 Safari 和 Chrome 中按 Tab 键移出某个字段时,光标的行为有何不同:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script>
    function handleBlur() {
      event.target.setSelectionRange(1,1)
    };
  </script>
</head>
<body>
  <input value="First Name" onblur="handleBlur()">
  <input value="Last Name" onblur="handleBlur()">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript safari google-chrome html-input reactjs

5
推荐指数
0
解决办法
415
查看次数

Meteor BrowserPolicy启用'blob:'来源

我启用了内容安全策略meteor包meteor/browser-policy-common

现在我从ostrio收到这个错误:与CSP相关的文件

拒绝从'blob:http:// localhost:3000/ef628f55-736b-4b36-a32d-b1056adfaa8c ' 创建一个worker,因为它违反了以下内容安全策略指令:"default- src'self'http :// fonts. googleapis.com https://fonts.googleapis.com http://fonts.gstatic.com https://fonts.gstatic.com http://code.ionicframework.com https://code.ionicframework.com ".请注意,'worker-src'未明确设置,因此'default-src'用作后备.

我的实际browser-policy-common配置看起来像这样

import { BrowserPolicy } from 'meteor/browser-policy-common';
// e.g., BrowserPolicy.content.allowOriginForAll( 's3.amazonaws.com' );
// BrowserPolicy.content.allowFontOrigin("data:");

BrowserPolicy.framing.disallow();
BrowserPolicy.content.disallowInlineScripts();
BrowserPolicy.content.disallowEval();
BrowserPolicy.content.allowInlineStyles();
BrowserPolicy.content.allowFontDataUrl();

const trusted = [
  'fonts.googleapis.com',
  'fonts.gstatic.com',
  'code.ionicframework.com',
];

_.each(trusted, (origin) => {
  BrowserPolicy.content.allowOriginForAll(origin);
});
Run Code Online (Sandbox Code Playgroud)

你能告诉我应该更改哪个配置以允许ostrio:文件blob:http:// localhost:3000 / ...工作?

非常感谢!

javascript meteor content-security-policy

5
推荐指数
1
解决办法
601
查看次数

Google Chrome SRI哈希

有谁遇到过Google Chrome和SRI Hash这个问题,它在控制台窗口中不断抛出相同的错误:

无法找到在“诚信”属性的有效消化资源“ https://fonts.googleapis.com/css?family=Indie+Flower ”与计算SHA-256诚信“yxJPuU / cJi0 / 8FoS + agssT / MtC4P3SGuU + JOzbTejqQ ='。资源已被阻止。

我正在从https://report-uri.io/home/sri_hash生成代码,并且还尝试过https://www.srihash.org/

根据这个网站https://glebbahmutov.com/blog/subresource-integrity/,作者有同样的问题,因此添加了多个散列<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Indie+Flower" integrity="sha256-CoGIUDlbZltnYk6u/wQKXOszdOOWImA1XzSERnNzHlc= sha384-vk+perBz0d5g0G+x7+4BxElvHeiaLNX7jegOI63Bg53TxNYaUzLGEsSQ4AmIwVr4 sha512-h+9Z3+9s3jtPJjXU9phAXFQwYYFSYhXlnkPwkuubLFf5kfeXWIRC32YkRdB08xmut/dJG/RjPoiR/r4DAtm3PQ==" crossorigin="anonymous">

hash google-chrome subresource-integrity

5
推荐指数
1
解决办法
2620
查看次数

使用XMLHttpRequest获取非utf8数据

我想从网上获取一份文件xmlHttpRequest.然而,有问题的文字不是utf8(在这种情况下它是windows-1251,但在通用情况下,我肯定不知道).

但是,如果我使用responseType="text"它,就好像字符串是utf8,忽略内容类型中的字符集(导致令人讨厌的混乱).

如果我使用'blob'(可能是我想要的最接近的东西),那么考虑到编码,我可以将其转换为DomString吗?

javascript xmlhttprequest utf-8

5
推荐指数
1
解决办法
806
查看次数

Safari 不理解我的 Content-Security-Policy 标头

当我说:

add_header Content-Security-Policy default-src 'self'; script-src 'self' unsafe-inline; connect-src wss://mysite.com;
Run Code Online (Sandbox Code Playgroud)

在我的标题中。但是 Safari 说:

拒绝连接到 wws://mysite,因为它没有出现在内容安全策略的 connect-src 指令中。[错误] SecurityError(DOM 异常 18):操作不安全。(匿名函数)(myjavascripturl.js)

为什么 Safari 不理解我的 Content-Security-Policy 标头?

safari nginx websocket http-headers content-security-policy

5
推荐指数
1
解决办法
1548
查看次数

处理 HTTP 429 错误的最佳方法

我正在使用一个 api,如果您在 5 分钟内点击它超过 250 次,它将返回 429,请求太多,响应。计数每五分钟重置一次,所以我一直这样处理:

try
{
    return request.GetResponse();  
}
catch (Exception e)
{
    if (e.Message.Contains("429"))
    {
        System.Threading.Thread.Sleep(5 * 60 * 1000);
        return request.GetResponse();
    }
    else
    {
        throw new Exception(e.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是处理这种情况的正确方法吗?

c# rest http-status-code-429

5
推荐指数
1
解决办法
2万
查看次数

反应错误:Firefox 中的“SharedArrayBuffer 未定义”

我有一个 React 应用程序,它是用“create-react-app”创建的(我也使用 jsdom NPM 包),出于某种原因,该应用程序仅在 Firefox 中在加载时引发错误(在 Chrome 和 Edge 中工作正常)。
这是错误:

ReferenceError: SharedArrayBuffer is not defined
./node_modules/jsdom/node_modules/webidl-conversions/lib/index.js
C:/Or/Web/WorldCovid/WorldCovid/node_modules/jsdom/node_modules/webidl-conversions/lib/index.js:347

  344 | 
  345 | const abByteLengthGetter =
  346 |     Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
> 347 | const sabByteLengthGetter =
  348 |     Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, "byteLength").get;
  349 | 
  350 | function isNonSharedArrayBuffer(V) {
Run Code Online (Sandbox Code Playgroud)

经过一番谷歌搜索,我发现:
“为了使SharedArrayBuffer在Firefox中,去about:config中和javascript.options.shared_memory偏好设置为true”(https://github.com/ggerganov/kbd-audio/issues/9)
的问题是它已经启用为true。

以前有人遇到过这个问题吗?谢谢。

更新:

尝试转换为:

const shared = new SharedArrayBuffer(1024);

const abByteLengthGetter =
    Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
const sabByteLengthGetter =
    Object.getOwnPropertyDescriptor(shared.prototype, "byteLength").get;
Run Code Online (Sandbox Code Playgroud)

仍然得到相同的错误(与 SharedArrayBuffer 对象不同的行)。

javascript firefox reactjs cross-origin-embedder-policy cross-origin-opener-policy

5
推荐指数
2
解决办法
6218
查看次数