Articles of javascript

AngularJS应用程序中的资源脚本是相对的还是绝对的?

我正在构build一个AngularJS单页面JavaScript应用程序,所以index.html看起来像这样: <html> <head> <base href="/" /> … </head> <body id="ng-app" ng-app="myAngularApp"> <div class="holder"> //templates from app.js are rendered here </div> <script src="bower_components/angular/angular.js"></script> <script src="bower_components/angular-route/angular-route.js"></script> <script src="bower_components/angular-resource/angular-resource.js"></script> <script src="scripts/app.js"></script> </body> </html> 我以HTML5模式运行这个应用程序,并且遇到了遗留浏览器回退的麻烦。 每当我在IE8中浏览到像$APPURL$/login这样的位置,它正确地重写为$APPURL$/#!/login ,但是当我像$APPURL$/locations/my/home一样嵌套时,它什么也不做甚至没有bootstrap),因为它无法在这个特定的path中findscipts。 我解决了这个问题,通过使我的脚本的绝对参考(前缀与/ ),但我看的所有Angular应用程序的例子使用相对path,而不是我的例子。 我用NGINX服务我的应用程序,并从众多的例子中得到如下configuration: location / { try_files $uri $uri/ /index.html; root /home/web/appdir; } 使用绝对path有什么缺点吗? 另外,为什么这是必要的? 我真的需要传统的浏览器支持,但要继续使用HTML5模式…..

无法通过CORS访问部分video内容到亚马逊EC2

我已经尽了最大努力使用已经可用的答案,并为此从2天没有成功。 我想要做的是访问存储在亚马逊Ec2实例中的Mp4video。 这导致 XMLHttpRequest无法加载否请求的资源上存在“Access-Control-Allow-Origin”标头。 原因' http:// localhost:8080 '因此不被允许访问。 该响应具有HTTP状态码405。 我的ngnix.conf有这样的头文件 http{ ………… server{ location / { if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' […]

在URL中有两个用户@的请求会导致Google AdSense发出“政策违规通知”

我最近收到了一封来自Google的电子邮件,表示他们将要禁止我的AdSense帐户,因为我使用自己的Google AdSense代码请求向他们发送了个人身份信息。 它说约有1%的来自我网站的请求有一个推荐人: some_user@my_website.com/some/subpage 他们认为some_user@my_website.com是PII(即使它可以完全由abcd1234@my_website.com组成)。 更多信息,请访问: https : //support.google.com/adsense/answer/6163366?hl = zh_CN 。 我从来没有链接到这种types的url(我使用的唯一forms是my_website.com/some/subpage),但我猜我的用户有时会手动input(因为我的网站提供的产品是电子邮件服务,这似乎是合理的通过一些逻辑)。 我认为some_user@my_website.com/some/subpage的URI是合法的,因为http basic auth允许像这样指定用户。 当我手动input到Firefox时,some_user @从地址栏中消失,但是在Firebug的Net面板中,我可以看到所有文件确实是从some_user@my_website.com/some/subpage请求的,Google也是这么看的。 我虽然认为这是一个暴力解决scheme,甚至像这样: if uri contains '@': redirect to my_website.com 会做。 我正在使用NGINX / UWSGI / Python粘贴+ JS。 我试图在服务器端和JS中实现上述条件,但是我的URI总是说my_website.com/some/subpage,即使我手动将some_user@my_website.com/some/subpage放在浏览器地址栏中。 我也尝试在NGINX中configurationbasic_auth,禁止提供任何用户,但不起作用。 我如何摆脱这些要求? 如何在JS中获得FULL URI(with some_user @)? 我试过document.URI和window.location.href但他们不包含用户部分…

Nginx:代理转向请求

我托pipe我自己的TURN服务器,我已经configurationNGINX作为我的networking服务器。 这是我的问题: 我有一个JavaScript WebRTC客户端,需要为ICE候选人调用一个转向服务器,所以我的TURN服务器在40501端口上运行。 不幸的是在JavaScript中,我得到了跨源请求被阻止的错误! 这就是NGINX所要求的帮助。 我将NGINXconfiguration为在端口40500上侦听,并将请求发送到运行TURN服务器的端口40501,如下所示: upstream turn{ server 128.199.xx.xx:40501; } server { listen 40500; server_name _; location / { proxy_pass http://turn; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' […]

Nginx和CORS问题

我试图在我的nginx服务器上设置cors。 我已经把这个到我的虚拟主机设置到位置部分: if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' 'http://client.cors-api.appspot.com'; # add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # # Custom headers and headers various browsers *should* be OK with but aren't # add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; # # Tell client that this pre-flight info is valid for 20 days # add_header 'Access-Control-Max-Age' 1728000; add_header […]

Video.js HLS解决scheme(适用于OS X Safari,iOS,Android)

我试图整合video.js,但没有成功。 JWplayer与M3u8stream完美配合,也许nginx.conf好。 使用video.js,并不总是启动m3us8(HLS)stream。 例1 :开始加载播放器,但不启动stream。 还有OSX Safari / Chrome / iOS和Win Chrome。 <head> <meta charset="utf-8"> <title>video.js HLS</title> <link href="/video.js/dist/video-js.css" rel="stylesheet"> <script src="/video.js/dist/video.js"></script> <script src="/video.js/dist/src/videojs-hls.js"></script> <script src="/video.js/dist/src/videojs-media-sources.js"></script> </head> <body> <video id="terrace" width=600 height=300 class="video-js vjs-default-skin vjs-big-play-centered" controls></video> <script> var player = videojs('terrace'); player.hls( 'http://ip/hls/terrace.m3u8' ); </script> </body> 示例2 :在OSX Safari和iOS设备上工作,但在Windows和OSX Chrome上显示“X”和“没有兼容的video源”消息。 <head> <meta charset="utf-8"> <title>video.js HLS […]

因为http的CORS错配

我不明白为什么我得到这个错误。 sub.domain.app/:1 XMLHttpRequest cannot load http://domain.app/wc-api/v3. The 'Access-Control-Allow-Origin' header contains the invalid value 'sub.domain.app'. Origin 'http://sub.domain.app' is therefore not allowed access. 网站domain.app是一个WordPress的安装和sub.domain只是静态的HTML。 而我错误发生时,我试图通过ajax(vue路由器)获取。 这两个领域都在宅基地上。 而且我已经build立了nginx来允许子域做CORS请求。 location / { try_files $uri $uri/ /index.php?$query_string; add_header 'Access-Control-Allow-Origin' "http://sub.domain.app"; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } 我希望比我聪明的人可以帮我解决这个问题。 提前致谢!

如何处理春季启动应用程序中的长轮询,由nginx平衡负载?

首先让我来描述一下这个情况。 我有一个有angular度的JavaScript前端。 我需要使用websocket,因此我使用“sockjs”和“stomp-websocket”。 var socket, client; socket = new SockJS('http://localhost:8080/stomp'); client = Stomp.over(socket); client.connect({}, function () { client.subscribe('/dummy/message', function (message) { console.log('subscribed'); } }); 我的后端是一个Spring Boot应用程序: @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.enableSimpleBroker("/dummy"); registry.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) { stompEndpointRegistry .addEndpoint("/stomp") .setAllowedOrigins("*") .withSockJS() .setSessionCookieNeeded(false); } […]

如何弥补JavaScript中的Nginx的URL重写?

我有几个Flask应用程序运行在Nginx反向代理之后。 所有以/ demo / pipeline开头的URL请求都将转到一个监听端口7001的Flask实例。我设置了X-Script-Name头,以便我的Flask后端可以根据http://flask.pocoo .org / snippets / 35 / 。 这可以让后端代码生成相对于/ demo /pipe道根目录的URL。 例如/demo/pipeline/static/utils.js。 下面是我的一个Nginxconfiguration,它将请求路由到/ demo / pipeline应用程序: server { listen 80; server_name localhost; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; location / { proxy_set_header X-Script-Name /; proxy_pass http://localhost:7000; } location /demo/pipeline/ { proxy_set_header X-Script-Name /demo/pipeline; rewrite ^/demo/pipeline/(.*) […]

AngularJS:通过https服务$资源,从https到http的angular度交换

我在我的AngularJS项目中build立了一个ng资源,它从REST API获取数据。 在开发和testing环境(都运行在http)一切工作正常。 但是,在生产中,由于No 'Access-Control-Allow-Origin' header错误,REST请求失败。 整个页面通过https提供,因此我希望Angular的请求也会通过https。 我使用相对path(例如/ api /)设置资源,但AngularJS似乎从https更改为http。 我的问题 什么可能导致请求http而不是https甚至与相关的APIurl? 有没有什么好的Angular文档如何处理$http或resource https请求? 这可能是与Nginx的服务器configuration问题? 对我来说,似乎Angular只是从https自动切换到http。 完整的错误消息 XMLHttpRequest cannot load http://www.example.com/api/data/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.example.com' is therefore not allowed access. AngularJS资源设置 .factory('Data', ['$resource', function($resource){ return $resource('/api/data\\/', {}, { query: { url:'/api/data/', method: 'GET', isArray: true} }, { stripTrailingSlashes: […]