相关疑难解决方法(0)

如何使用用户脚本加载共享Web worker?

我想用一个用户脚本加载一个共享工作者.问题是用户脚本是免费的,并且没有托管文件的商业模式 - 我也不想使用服务器,甚至是免费服务器来托管一个小文件.无论如何,我尝试了它,我(当然)得到了相同的原始政策错误:

Uncaught SecurityError: Failed to construct 'SharedWorker': Script at
'https://cdn.rawgit.com/viziionary/Nacho-Bot/master/webworker.js'
cannot be accessed from origin 'http://stackoverflow.com'.
Run Code Online (Sandbox Code Playgroud)

还有另一种方法可以通过将worker函数转换为字符串然后转换为Blob并将其作为worker加载来加载Web worker,但我也尝试过:

var sharedWorkers = {};
var startSharedWorker = function(workerFunc){
    var funcString = workerFunc.toString();
    var index = funcString.indexOf('{');
    var funcStringClean = funcString.substring(index + 1, funcString.length - 1);
    var blob = new Blob([funcStringClean], { type: "text/javascript" });
    sharedWorkers.google = new SharedWorker(window.URL.createObjectURL(blob));
    sharedWorkers.google.port.start();
};
Run Code Online (Sandbox Code Playgroud)

这也不起作用.为什么?因为共享工作程序是根据其工作文件的加载位置共享的.由于createObjectURL为每次使用生成唯一的文件名,因此工作人员将永远不会拥有相同的URL,因此永远不会共享.

我怎么解决这个问题?


注:我想询问具体的解决方案,但在这一点上,我想我能做的最好是问一个更宽泛的方式的任何 解决问题的办法,因为我所有的尝试的解决方案似乎根本不可能的,因为相同的起源政策或方式 URL.createObjectURL工作(从规范,似乎不可能改变生成的文件URL).

话虽如此,如果我的问题可以某种方式得到改善或澄清,请发表评论.

javascript greasemonkey userscripts

32
推荐指数
2
解决办法
2026
查看次数

会话数据仅在Chrome中丢失

我有一个类似的问题,如果不是这个线程中的问题相同: 只在谷歌Chrome和URL重写中随机丢失会话变量

但是该线程中的所有解决方案对我都不起作用.我在我的PHP/MySQL应用程序中只从Google Chrome中获得了一个奇怪的行为.如果我尝试使用Firefox,它可以运行,但Chrome不会.

我导航到购物车中的某个地方,代码中的几个地方我将存储会话数据.不要担心我开始会议或与此相关的任何事情,我已经在webapp开发工作了11年,一切都很好.

在所有浏览器中,我都可以var_dump($_SESSION)恢复我的数据,但在Chrome中,它不会保留数据.另请注意,会话确实已经传递,我可以查看网络监视器,我看到正在发送的cookie以及与会话工作相关的许多其他事情但是$_SESSION['last_viewed_element']没有保留.我似乎也无法设置任何其他东西,所有人都迷失了.

编辑:

从SESSIONS切换到COOKIES解决了问题...

php session google-chrome

30
推荐指数
3
解决办法
5万
查看次数

如何更简洁地从命令行启动带有标志的Chrome?

我正在开发一个WebGL驱动的应用程序,我想从命令行启动这样的chrome:

open -a Google\ Chrome --args --disable-web-security
Run Code Online (Sandbox Code Playgroud)

我只是不想每次都输入它.有没有办法轻松将其转换为单字命令?如果重要,我正在使用mac.

security macos command-line shortcut webgl

29
推荐指数
3
解决办法
5万
查看次数

Dart/Flutter:Http 请求引发 XMLHttpRequest 错误

我正在尝试制作一个带有 flutter 的 RSS 阅读器,但该程序引发了XMLHttpRequest error.

\n

在我的测试中,我使用网络(Chrome)作为我的目标平台。

\n

感谢您的帮助。

\n
  Future<RssFeed> fetchFeed() async {\ntry {\n  final response = await http.get(Uri.parse(url), headers: {"Access-Control-Allow-Origin": "*"});\n  return RssFeed.parse(response.body);\n} catch (e) {\n  print(e);\n  return RssFeed(title: "Test");\n  }}\n\n  var feed = await fetchFeed();\n
Run Code Online (Sandbox Code Playgroud)\n

完整错误日志:

\n
Error: XMLHttpRequest error.\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-\n\nsdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 910:28                get current\npackages/http/src/browser_client.dart 69:22                                                                                    <fn>\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1685:54                                              runUnary\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 159:18                                        handleValue\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44                                        handleValueCallback\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13                                        _propagateToListeners\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 592:7                                         [_complete]\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream_pipe.dart 61:11                                         _cancelAndValue\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream.dart 1288:7                                             <fn>\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 334:14  _checkAndCall\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 339:39  dcall\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37301:58                              <fn>\n\n\n    at Object.createErrorWithStack (http://localhost:49656/dart_sdk.js:5080:12)\n    at Function._throw (http://localhost:49656/dart_sdk.js:20337:18)\n    at Function.throwWithStackTrace …
Run Code Online (Sandbox Code Playgroud)

xml rss http dart flutter

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

Angular ng-view/routing在PhoneGap中不起作用

我在PhoneGap中遇到了ngView的问题.

一切似乎都装得很好,我甚至可以使用ng-controller来使用基本的控制器.但是当我尝试使用ngView进行路由时,没有任何反应.

的index.html

<!doctype html>
<html ng-app>
<head>
    <script type="text/javascript" src="lib/cordova-2.4.0.js"></script> 
    <script type="text/javascript" src="lib/angular-1.0.4.min.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
</head>
<body>

<a href="#/test">Test</a>

<div ng-view></div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

app.js

angular.module('App', []).config(function ($routeProvider) {

    $routeProvider.when('/test', {
        controller: TestCtrl,
        template: '<h1> {{ test }} </h1>'        
    });

});

function TestCtrl($scope) {
    $scope.test = "Works!";
}
Run Code Online (Sandbox Code Playgroud)

Eclipse记录器onMessage(onPageFinished, fle:///android_asset/www/index.html#/test)每次单击链接时都会显示,并且在没有#引发错误的情况下尝试它而无法找到路径.

从我在其他地方做好准备,这应该是有效的.任何帮助将不胜感激.

routing angularjs cordova angular-routing

27
推荐指数
2
解决办法
3万
查看次数

使用.cssRules访问跨域样式表

当我尝试访问外部域上托管的一些CSS文件时,我在Firebug中收到此错误:

Security error" code: "1000
rules = styleSheets[i].cssRules;
Run Code Online (Sandbox Code Playgroud)

我使用的代码是:

$(document).ready(function () {
    $("p").live('mousedown', function getCSSRules(element) {
        element = $(this);
        var styleSheets = document.styleSheets;
        var matchedRules = [],
            rules, rule;
        for (var i = 0; i < styleSheets.length; i++) {
            rules = styleSheets[i].cssRules;
            for (var j = 0; j < rules.length; j++) {
                rule = rules[j];
                if (element.is(rule.selectorText)) {
                    matchedRules.push(rule.selectorText);
                }
            }
        }
        alert(matchedRules);
    });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,除了移动同一域上的所有CSS文件?

jquery cross-domain

24
推荐指数
3
解决办法
2万
查看次数

Angular是否需要运行Web服务器?如果我给浏览器一个本地文件的URL,那么Angular会工作吗?

我的意思是,我已经读过Angular允许使用模拟数据,因此不需要连接RESTFul api.我可以想到一个用例,用户体验设计师只需看看化妆品,就不需要连接到Web服务器.我也可以考虑其他用例.

因此,Angular的工作是给浏览器一个本地文件的URL,如C:\ temp\index.html,js文件位于c:\ temp或者说c:\ temp\js.

所以实际上,我试过了,这里是一个应用程序文件(我知道应该分开)

<html ng-app="myNoteApp">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>

<div ng-controller="myNoteCtrl">

<h2>My Note</h2>

<p><textarea ng-model="message" cols="40" rows="10"></textarea></p>

<p>
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
</p>

<p>Number of characters left: <span ng-bind="left()"></span></p>

</div>

<script >
// was in separate file but pasted in for demo purposes
var app = angular.module("myNoteApp", []);

</script>
<script >
// was in separate file but pasted in for demo purposes
app.controller("myNoteCtrl", function($scope) {
    $scope.message = "";
    $scope.left  = function() {return 100 - $scope.message.length;};
    $scope.clear = …
Run Code Online (Sandbox Code Playgroud)

angularjs

20
推荐指数
3
解决办法
4万
查看次数

禁用Firefox同源策略而不安装插件

有没有办法通过在浏览器中切换标志来禁用Mozilla Firefox浏览器上的相同原始策略

这是严格的开发,不是生产用途.


请注意:

3年多前提出的类似问题产生了一个可接受的答案,建议用户安装插件.我认为这比切换标记更安全,更麻烦(例如在about:config中,或者在Chrome中启动浏览器时传递参数).

firefox same-origin-policy cors

20
推荐指数
3
解决办法
2万
查看次数

从React(Isomorphic应用程序)进行API调用时出现"Access-Control-Allow-Origin"问题

我使用React和Express遇到了同构JavaScript应用程序的问题.

我正在尝试使用axios.get在我的组件安装时发出HTTP请求

componentDidMount() {
  const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
  axios.get(url).then( res => {
    //use res to update current state
  })
}
Run Code Online (Sandbox Code Playgroud)

我从API获得状态200 res,但我没有得到任何响应数据并在我的控制台中收到错误

XMLHttpRequest cannot load http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:3000' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

但是,如果我在server.js中发出请求

const url = 'http://ufc-data-api.ufc.com/api/v3/iphone/fighters/title_holders';
axios.get(url).then(res => {
    //console.log(res);
});
Run Code Online (Sandbox Code Playgroud)

它工作正常,我在服务器启动时获得响应数据.这是实际API的问题还是我做错了什么?如果这是一个CORS问题,我猜测server.js中的请求也不起作用?谢谢!

javascript node.js reactjs isomorphic-javascript axios

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

仅在Google Chrome和网址重写中随机丢失会话变量

使用谷歌浏览器,我似乎在页面之间导航时丢失/损坏会话数据(PHP 5.0.4,Apache 2.0.54).该网站在IE7/8,Firefox,Safari和Opera中运行良好.该问题仅适用于Google Chrome.

我缩小了问题范围.我正在使用搜索友好的URL,并通过.htaccess文件隐藏我的前端控制器(index.php).所以URL看起来像:www.domain.com/blah/blah/这是.htaccess文件内容:

Options +FollowSymlinks 
RewriteEngine on
#allow cool urls 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php [L] 
#allow to have Url without index.php 
Run Code Online (Sandbox Code Playgroud)

如果我删除.htaccess文件,并在网址中公开前端控制器:www.domain.com/index.php/blah/blah/,Chrome就可以正常工作.

有什么想法吗?我认为Chrome识别使用哪种cookie并发送到服务器有什么问题?这发生在Chrome 4和5中.谢谢!

php apache google-chrome

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