小编tri*_*Rev的帖子

用于XML的XDomainRequest(CORS)导致IE8/IE9中的"访问被拒绝"错误

如果这似乎是重复的道歉,但我无法看到任何类似问题的明确答案.

当尝试对某些XML执行CORS请求时,我不断从IE8获得"访问被拒绝"JS错误.

我的代码改编自这个例子:

// Create the XHR object.
function createCORSRequest(method, url) {
  var xhr = new XMLHttpRequest();
  if ("withCredentials" in xhr) {
    // XHR for Chrome/Firefox/Opera/Safari.
    xhr.open(method, url, true);
  } else if (typeof XDomainRequest != "undefined") {
    // XDomainRequest for IE.
    xhr = new XDomainRequest();
    xhr.open(method, url);
  } else {
    // CORS not supported.
    xhr = null;
  }
  return xhr;
}

// Helper method to parse the title tag from the response.
function getTitle(text) {
  return text.match('<title>(.*)?</title>')[1];
}

// Make …
Run Code Online (Sandbox Code Playgroud)

javascript ajax xmlhttprequest cross-domain internet-explorer-8

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

Firefox Web 扩展“无法访问死对象”错误

我很难找到这个问题的最新答案,而且经常没有时间在这里回答问题,所以我想发布这个,这样我就可以回答我自己的问题,因为我找到了解决方案。

我正在为 Chrome 和 Firefox 制作一个 Web 扩展。Firefox 有一个问题,当我从选项页面 JS 调用后台函数,将一些数据设置到后台页面中的 var,然后关闭选项页面时,我会收到错误“无法访问死对象”代码稍后尝试访问已设置的变量。这是代码:

选项.js

formInOptions.addEventListener('submit', function(e){
    e.preventDefault();
    chrome.extension.getBackgroundPage().defaults({
        keyname:  e.target['form-field'].value
    }, function(){
        // data saved cb
    });
});
Run Code Online (Sandbox Code Playgroud)

背景.js

function defaults(oNewDefaults) {
    // Global oDefaults already exists, and trying to access this after the options page is closed causes the error.
    chrome.storage.local.get({
        config: {}
    }, function(data) {
        let config = data.config;
        config.defaults = config.defaults || {};
        config.defaults = Object.assign(config.defaults, oNewDefaults); // Merge incoming obj into existing obj
        chrome.storage.local.set({
            config: config
        }, …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension firefox-addon-webextensions

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

Chrome 扩展程序中强制代理重新身份验证

我正在制作一个扩展,允许用户存储具有身份验证凭据(用户/通行证)的代理服务器并在服务器之间切换。我正在侦听该webRequest.onAuthRequired事件,当服务器挑战身份验证时,证明用户已保存的用户名/密码,如下例所示provideCredentialsSync: https: //developer.mozilla.org/en-US/docs/Mozilla/Add- ons/WebExtensions/API/webRequest/onAuthRequired#Examples

问题是,当提供这些凭据时,它们似乎会保存/缓存在开发人员无权访问的扩展中的某个位置,然后不断地重复使用。因此,如果扩展用户随后将其凭据更改为不正确,则浏览器会自动继续使用其Proxy-Authorization标头中经过身份验证的凭据,并且请求会成功。反之亦然,如果身份验证失败,并且请求按照上面的示例被取消,则用户将其信用更改为正确的,服务器不会再次询问身份验证,并且请求失败,并且无法提供新的信用。

Chrome 也不允许修改传出Proxy-Authorization标头,这意味着不能在代码中删除/更改它以强制服务器再次质询。

所以我认为核心问题是:

  • 有谁知道从侦听器返回时详细信息保存在哪里 webRequest.onAuthRequired,有没有办法清除/清除?

  • 返回时实际发生了什么{cancel: true}以及为什么对该服务器的所有请求都会继续失败而不触发另一个onAuthRequired

感谢任何人都能发出的光芒!

javascript authentication proxy google-chrome-extension firefox-addon-webextensions

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

使用语义标记结构的带标签导航的框?

我正在尝试创建一个信息框,其中包含用于切换框内容的选项卡,如下所示:http://www.cssnewbie.com/build-a-tabbed-box-with-css-and-jquery/

简单易用一些CSS和jQuery吧?问题是我正试图找出一种方法来使用语义标记,因此当禁用CSS/JS时,它只是以正确的顺序显示其内容的标题.我见过的所有例子都是这样的:

<div id="box-nav">
    <ul>
        <li>Content head 1</li>
        <li>Content head 2</li>
        <li>Content head 3</li>
    </ul>
</div>

<div id="box-content">
    <div id="content-1">
        <p>Blah 1. </p>
    </div>
    <div id="content-2">
        <p>Blah 2. </p>
    </div>
    <div id="content-3">
        <p>Blah 3. </p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这使得通过分隔标题及其内容很容易构建,但我想使用此标记制作一个:

<div id="content-1">
    <h2>Content head 1</h2>
    <p>Blah 1. </p>
</div>
<div id="content-2">
    <h2>Content head 2</h2>
    <p>Blah 2. </p>
</div>
<div id="content-3">
    <h2>Content head 3</h2>
    <p>Blah 3. </p>
</div>
Run Code Online (Sandbox Code Playgroud)

因此它会像普通的HTML一样优雅地降级,但是如果不使用jQuery来重新排列标记,我就无法理解它.

有人知道干净的方式吗?

html css jquery semantic-markup

4
推荐指数
1
解决办法
1431
查看次数