小编Wal*_*han的帖子

为什么我们将null传递给XMLHttpRequest.send?

为什么send经常被称为

xhr.send(null)
Run Code Online (Sandbox Code Playgroud)

代替

xhr.send()
Run Code Online (Sandbox Code Playgroud)

W3,MDNMSDN都声明它是可选的.此外,ActiveX控件似乎不需要参数:

hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP.6.0");
SUCCEEDED(hr) ? 0 : throw hr;

hr=pIXMLHTTPRequest->open("GET", "http://localhost/books.xml ", false);
SUCCEEDED(hr) ? 0 : throw hr;

hr=pIXMLHTTPRequest->send(); // <-- this line
SUCCEEDED(hr) ? 0 : throw hr;
Run Code Online (Sandbox Code Playgroud)

这种做法send(null)至少可以追溯到2005年的Google地图,但是在缩小范围之后,没有任何解释:

Y.asynchronousTransform = function (qc, vb, kc, Nc, Ba) {
    if (m.type == 3) return;
    var cc = Y.getCached(kc);
    if (cc) {
        cc.transformToHTML(qc, vb);
        if (Nc) Nc();
        return
    }
    var yc = qa.create(Ba); …
Run Code Online (Sandbox Code Playgroud)

javascript ajax

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

正则表达式1美元,2美元等

我一直在尝试用PHP做一些正则表达式操作,我在这方面不是很熟练.似乎当我在字符串上使用像preg_replace这样的正则表达式函数时,我可以通过某种名为$ 1,$ 2的变量来访问正则表达式替换的字符串,依此类推.这叫什么,我该如何使用它?

php regex variables

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

`docker build` 显示 `RUN` 的输出

我有这个Dockerfile,我在其中运行命令RUN,并且我想在运行时查看其输出docker build

FROM alpine:3.14
COPY . .
RUN echo "here are some numbers: $(seq 10)"
Run Code Online (Sandbox Code Playgroud)

当我运行时docker build .,它不显示上述命令的输出:

[+] Building 2.8s (8/8) FINISHED                                                                                                           
 => [internal] load build definition from Dockerfile                                                                                  0.0s
 => => transferring dockerfile: 36B                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                     0.0s
 => => transferring context: 2B                                                                                                       0.0s
 => [internal] load metadata for docker.io/library/alpine:3.14                                                                        1.2s
 => [internal] load build context                                                                                                     0.1s
 => => transferring context: 188.24kB                                                                                                 0.1s
 => CACHED [1/3] FROM docker.io/library/alpine:3.14@sha256:234cb88d3020898631af0ccbbcca9a66ae7306ecd30c9720690858c1b007d2a0 …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

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

Nginx代理到本地磁盘或S3上的文件

所以我将我的网站从Apache转移到Nginx,我遇到了这个场景的问题:

用户上传照片.此照片已调整大小,然后复制到S3.如果磁盘上有合适的空间(或者文件无法传输到S3),则保留本地版本.

我想要请求这些图像(例如http://www.mysite.com/p/1_1.jpg)首先查看p /目录.如果不存在本地文件,我想将请求代理到S3并呈现图像(但不是重定向).

在Apache中,我这样做:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([0-9]+_[0-9]+\.jpg)$ http://my_bucket.s3.amazonaws.com/$1 [P,L]
Run Code Online (Sandbox Code Playgroud)

我试图在Nginx中复制这种行为是这样的:

location /p/ {
    if (-e $request_filename) {
        break;
    }
    proxy_pass http://my_bucket.s3.amazonaws.com/;
}
Run Code Online (Sandbox Code Playgroud)

会发生什么事情是每个请求都尝试命中Amazon S3,即使该文件存在于磁盘上(如果它在亚马逊上不存在,我也会收到错误.)如果我删除了proxy_pass行,那么磁盘DO上的文件请求就会起作用.

有想法该怎么解决这个吗?

proxy nginx amazon-s3

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

mod_rewrite:如果该文件存在于另一个目录中,请改为使用该文件

我有一个网站example.com/test/.让我们说网站的布局如下:

example.com
??? test/
    ??? assets/
    ?   ?? stylesheet.css
    ?
    ??? .htaccess
    ??? index.php
Run Code Online (Sandbox Code Playgroud)

index.php 这是路由器,现在看起来很酷.

每当用户请求类似的页面时example.com/test/stylesheet.css,我想检查是否assets/有该文件,如果有,请提供该文件而不是提供URL index.php.理想情况下,以下方法可行:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond assets/%{REQUEST_FILENAME} -f
RewriteRule ^(.+)$ assets/$1
Run Code Online (Sandbox Code Playgroud)

但既然%{REQUEST_FILENAME}是一条绝对的道路,assets/%{REQUEST_FILENAME}那就像是一样assets/home/public/test/stylesheet.css.%{REQUEST_URI}不是更好:它变成了assets/test/stylesheet.css.我也看了这个问题,但答案也没有用.

有没有办法,没有诉诸PHP,这样做?(如果没有,我只会使用PHP readfile,但我不想担心LFI或其他任何东西.)

.htaccess mod-rewrite

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

PHP访问类在另一个类里面

所以我有两个这样的类:

class foo {
    /* code here */
}
$foo = new foo();
class bar {
    global $foo;
    public function bar () {
        echo $foo->something();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在所有方法栏中访问foo的方法,而不是在bar内的每个方法中声明它,如下所示:

class bar {
    public function bar () {
        global $foo;
        echo $foo->something();
    }
    public function barMethod () {
        global $foo;
        echo $foo->somethingElse();
    }
    /* etc */
}
Run Code Online (Sandbox Code Playgroud)

我也不想延长它.我尝试使用var关键字,但似乎没有用.我怎么做才能在bar的所有方法中访问其他类"foo"?

php variables global

7
推荐指数
1
解决办法
8599
查看次数

如何使用多个服务器进行Flask登录

我一直在使用Flask登录模块,它在服务器上创建和维护会话.

由于服务器维护会话,我认为它不是完全无状态的.当应用程序有多个服务器时,它是如何工作的.请求是否应该是粘性的(即,给定会话应该对特定服务器发出后续请求)?

python flask flask-login

7
推荐指数
1
解决办法
3174
查看次数

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

htaccess SetEnvIf true

如果我想在评估 RewriteRules 之前设置环境变量,我必须使用SetEnvIf而不是SetEnv. 不过,SetEnvIf需要具备一个条件。事实上,我有:

SetEnvIf Request_Method ^ ENV=VALUE
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

.htaccess

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

php中的回调函数和异常

目前我正在阅读有关回调函数的 php 手册,并发现了有趣的注释:

如果在先前的回调中抛出未捕获的异常,则不会调用使用call_user_func() 和 call_user_func_array() 等函数注册的回调

很明显,脚本运行会在未捕获异常的情况下被中断。那么,为什么php手册的作者还要写关于call_user_func的呢?还是我误解了声明?

php callback

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