在xhr.send()上,由于内容安全策略(CSP)而处理错误

时间:2017-12-19 18:32:36

标签: javascript ajax xmlhttprequest content-security-policy

我理解其中一些原始策略的目的是出于某种原因,例如阻止XSS,但我希望能更好地处理错误。

我们在访问者网站中注入了iframe,为了创建案例,我们将代码更改为n XMLHTTPRequest到我们的端点URL。

我们的一些客户已经拥有非常具体的CSP(他们也配置了允许我们现有的,很快就会过时的代码)来处理我们正在实施的产品。

所以,现在,当我们发布POST时,一些网站会失败,我想更好地处理这个失败。例如,如果我们的客户端有$.each,POST将失败,我想回退到Legacy逻辑。

似乎没有特定的失败代码,因为在$.ajax({ url: 'loadlatestreviews.html' method: 'POST', dataType: 'json', success: function(data) { console.log(data); var fields = JSON.parse(data); var subject = fields["subject"]; } }); 它会立即创建控制台错误POST

然后,connect-src 'none'事件触发,最后xhr.send()事件触发。因此,如果我正确地看到了事情,则没有特定的get(Content-Security-Policy)方法。标题是空的,所以我的唯一选项是

是正确的
Refused to connect to 'http://blah.com/' because it violates the following Content Security Policy directive: "connect-src 'none'".

另外,因为我可以在onreadystatechange事件上跟踪它,所以我不需要运行onError事件。但是没有办法取消这个XHR?

我们不能将fetch()用于promises,因为IE尚不支持它。我们只使用纯JS(没有xhr.onreadystatechange)。

感谢您澄清

  1. 更好的逻辑来了解它是CSP和
  2. 的失败
  3. 我可以从onreadystatechange中删除XHR吗?

0 个答案:

没有答案