小编Gre*_*lis的帖子

为什么 XMLHttpRequest 包含 Origin 标头?

我想更好地理解这一点。我目前使用的心理模型是这样的:

  1. foo.com 托管的 JS 希望访问 bar.com 托管的资源。这不是浏览器喜欢向用户展示的类型,除非可以表明 bar.com 欢迎此请求。
  2. 因此 foo.com JS 本质上将请求分成两半。首先,我们通过 XMLHttpRequest 对象发送适当类型的无数据请求(GET、POST 等)。bar.com 上的服务器返回它通常会响应的任何请求,其中可能包含也可能不包含 Access-Control-Allow-Origin 标头。(编辑:这是一个误解 - 请参阅下面 apsillers 的精彩评论)
  3. 如果浏览器确实获得了这样的标头,它会扫描它以查找源(在本例中为 foo.com)。如果存在,它将继续发送要求发送的实际请求。如果没有,则拒绝。(编辑:这也不太正确)

如果这个模型是正确的,我很困惑为什么浏览器会通过这个初步请求发送 Origin 标头。检查匹配不是发生在客户端吗?发送这个 header 能达到什么目的呢?

javascript jquery xmlhttprequest cross-domain

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

当我运行setuptools .egg"好像它是一个shell脚本"时,实际发生了什么?

通过阅读本文档,我已经构建了一个关于命令sh setuptools-0.6c11-py2.7.egg实际执行的心智模型,但它非常不完整,我仍然在某些方面感到困惑.

我的心智模型是这样的:

  1. 当发出这个命令时,egg(我认为它是一种巧妙处理依赖关系的zip文件)以某种方式在我的系统上找到了正确版本的python,并使用该python将"自己安装"到适当的位置.
  2. 在实践中,这意味着在希望在我的路径上的目录中创建名为easy_install的"Unix可执行文件".这就是我之后可以直接输入easy_install somepackage终端的原因.

因此,我的问题是:

  1. "鸡蛋"如何以这种方式"安装"?当其他鸡蛋需要easy_install工作时,为什么这对这个鸡蛋特别有效?
  2. 这样创建的'Unix可执行文件'是4kb.究竟是什么?它是否充满了对其他事物的召唤?他们在哪?

这不是一个'如何让它工作'的问题 - 我在这个轴上没有任何问题,但我想完全了解这里发生了什么.

python shell setuptools easy-install

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

Python:当cls不浮动时,为什么会浮动.__ new __(cls)工作?

我对这里的python文档中的以下示例感到有些困惑.

>>> class inch(float):
...     "Convert from inch to meter"
...     def __new__(cls, arg=0.0):
...         return float.__new__(cls, arg*0.0254)
...
>>> print inch(12)
0.3048
>>> 
Run Code Online (Sandbox Code Playgroud)

据推测,float在这里是在Python内部深处定义的实际float类.当我们调用时float.__new__(cls, argument),我们偷偷地调用返回给定参数的float实例的函数,但是我们将它传递给inch类而不是float类.由于英寸级别没有真正做任何事情,为什么这样做?

python

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