小编Hub*_*bro的帖子

有没有办法通过Access-Control-Allow-Origin在我自己的服务器上进行开发?

我收到此JavaScript错误

XMLHttpRequest无法加载http://foo.bar.no/API/map_tools/clean_addresses/check.Access-Control-Allow-Origin不允许来源http://foo.bar.no:9294.

这些都在同一个域和相同的服务器上,但我的JavaScript项目由一个独立的服务器脚本托管,该脚本自动将JavaScript及其依赖项捆绑到一个文件中.

在我开发的过程中如何克服这个限制?


我试过允许我的JavaScript服务器脚本连接.这是网址卷曲的结果:

HTTP/1.1 200 OK
Date: Wed, 11 Jan 2012 09:05:14 GMT
Server: Apache/2.2.16 (Debian)
Access-Control-Allow-Origin: http://foo.bar.no:9294
Vary: Accept-Encoding
Content-Length: 70
Content-Type: text/plain

array(1) {
  ["q"]=>
  string(31) "map_tools/clean_addresses/check"
}

而且我仍然得到与上面粘贴完全相同的错误.为什么当显然允许时,Chrome仍然拒绝连接到该死的URL!?

javascript ajax xmlhttprequest

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

是否有一个模块用于从node.js中的命令行获取用户输入?

首先:我不是指从process.argv数组中解析参数和选项,而是提示用户并处理输入/输出.我查看了Node.js官方模块列表,但未找到提及输入的任何部分或子部分.事实上,在该页面上搜索"输入"只能得到1个与YAML有关的结果.

无论如何,我认为cli输入应该是异步的,我在使用之前已经解决了这个问题stdin.on('data'),至少可以说它是混乱的.这对于节点模块来说似乎是一个完美的任务,它可以带有额外的好处,如进度条,微调器,彩色输出,输入验证等.

可能有一些模块可以做到这一点,但我找不到任何模块.

救命!!

(为了澄清,我需要的唯一功能是简化处理用户输入)

command-line-interface node.js npm

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

如何在子查询中使用SHOW CREATE TABLE?

我正在努力完成这样的事情:

SELECT *
FROM   information_schema.`tables`
    JOIN (SHOW CREATE TABLE)  # <-- need help here
WHERE  table_schema LIKE 'tables\_%'
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个查询中执行此操作?

php mysql sql pdo

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

为什么Symfony 2在我的环境中响应速度很慢?

我有一台运行Debian Squeeze的VMware虚拟机.我的所有项目都在我的Windows机器上的一个文件夹中,可以通过VMware共享文件夹访问Debian VM.这意味着我可以在我的Windows机器上使用适当的文本编辑器处理我的项目,同时从Linux环境托管它们.几个月来我一直在使用这个设置,在使用PHP或其他与开发相关的任务托管Apache站点时没有问题,直到我试用了Symfony.

我现在在我的htdocs目录中有一个Symfony 2(Symfony_Standard_Vendors_2.2.1.tgz)的开箱即用演示实例,以及我的Windows机器上与VM共享的一个实例.我的htdocs目录如下所示:

htdocs
|`- Symfony
 `- Symfony_shared -> /mnt/hgfs/Dropbox/Symfony
Run Code Online (Sandbox Code Playgroud)

Symfony是位于htdocs文件夹中的实际物理目录,而Symfony_shared是指向我的Windows机器上Dropbox文件夹的软链接.我必须重复; 我之前从未遇到任何与此方法相关的性能问题.

相同的文件系统

现在 - 当我在浏览器中访问http://devmachine.local/Symfony/web/app_dev.php并进入探查器时,我看到这些数字:

Total time           83 ms
Initialization time  43 ms

非常好的数字.整个响应在不到100毫秒内就绪了.

关联

但是当我访问http://devmachine.local/Symfony_shared/app_dev.php时,我在分析器中看到了非常不同的数字:

Total time           6833 ms
Initialization time  4249 ms

谁能解释这些数字?什么是"初始化时间",为什么需要4秒以上?请记住,这只是Symfony演示欢迎页面.我实际测试项目中的登录页面的初始化时间为19秒,总时间为22秒.

我应该提一下,我也在php app/console两个目录中都进行了快速测试.在Symfony文件夹中,此命令立即返回使用情况,而在Symfony_shared中,它在响应之前花了几秒钟.

我对Symfony文件夹所做的唯一更改是删除了将流量限制为127.0.0.1的app_dev.php部分.


我在Debian 6.0.7(squeeze)上使用Apache 2.4.4和PHP 5.4.14.

以下是Symfony_shared欢迎页面分析器的屏幕截图:

Symfony_shared欢迎页面分析器的屏幕截图

php apache vmware symfony symfony-2.2

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

如何让Symfony在所有响应中指定我的字符集?

我的Symfony 2应用程序的所有响应都有这个标题行:

Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)

所以我的浏览器假设输出字符集是ISO-8859-1.我想标题说:

Content-Type: text/html; charset=utf8
Run Code Online (Sandbox Code Playgroud)

代替.我知道我可以为每个响应手动执行此操作:

$response->setCharset('UTF-8');
Run Code Online (Sandbox Code Playgroud)

但这将是非常多余的,因为我的应用程序有很多控件,只能输出UTF-8.我徒劳地搜索了一个控制默认字符集的Symfony配置设置.我发现framework.charset但这似乎是无关的,无论如何默认是UTF-8.

如何让Symfony在所有响应中指定我的字符集?


我的想法

我知道这不是一个问题(大多数时候),因为我可以在HTML和XML中明确指定charset.问题是我服务纯文本或JSON,或者我正在使用转储变量var_dump.在这两种情况下,所有非ASCII符号都被扰乱,因为我的浏览器冒错了猜测.

我的备份解决方案是将响应类子类化并放入$this->setCharset('UTF-8')构造函数中.

php symfony

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

是否有一种快速简便的方法从Ruby的基本数据结构创建校验和?

我有一个Hash看起来像这样的数据结构():

{
    foo: "Test string",
    bar: [475934759, 5619827847]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个校验和,Hash以检查将来是否相等.我尝试使用它的hash方法Hash,这导致了一个令人满意的好看的哈希,但事实证明,在Hash重新启动解释器后,相同的将产生不同的哈希.

我真的希望能够从创建〜128位的校验和Hash,StringArray实例.

这可能吗?

ruby hash checksum

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

如何在Python中单个测试的持续时间内替换类变量?

我正在尝试测试一个缓存类,其中应该自动删除旧项.缓存可以容纳的项目数量由"常量"类变量控制,如下所示:

class Cache(dict):
    MAX_ITEMS = 100
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我想在单个测试用例的持续时间内更改该常量.使用unittest.mock.patch我可以用一个替换类变量,MagicMock但这不是我想要做的.我只需要用不同的号码替换它.

有没有一种优雅的方法在Python(像patch)中执行此操作,或者我应该自己重置变量tearDown


我正在使用Python 3.4.3

python unit-testing python-3.x python-unittest

7
推荐指数
2
解决办法
3227
查看次数

我如何构建我的PHP项目?

我即将开始另一个大型PHP项目.这一次,我打算让项目文件夹整洁!所以我有一些关于保持项目干净和干燥的问题:

  • 如何区分PHP源文件和浏览器应该访问的PHP文件?换句话说,如何清楚哪些PHP文件提供输出以及哪些提供函数或类定义?

  • 我打算将我的PHP函数分成静态类,由主题分隔,例如database :: create()或editor :: write().你对此有何看法?

  • 我打算创建一个PHP文件"core.php",它将包含在项目中每个单个PHP文件的顶部.此文件将处理身份验证并包含基本功能.思考?

  • 该项目将基于Ajax.这引出了一个问题:我的PHP函数应该是实际的PHP函数,还是应该是需要GET或POST输入的单个PHP文件?我的计划是做件事.我为PHP源文件创建了一个文件夹,为PHP"ajax"文件(或其他东西)创建了一个文件夹,后面的文件夹由他们将执行的函数填充文件名.然后,PHP文件将只包含对函数的调用和Ajax的写入输出.思考?

在开始这个项目之前的任何其他评论或提示都会很棒!


编辑

我可能没有强调基于Ajax的Web应用程序的重要性.Codeigniter似乎是创建网页或简单Web应用程序(如博客)的绝佳工具.我的申请会有所不同.与uTorrent WebUI非常相似,我的Web应用程序将在一个页面上保持静态,让Ajax执行所有隐藏的操作.将Codeigniter用于这样的项目似乎有点尴尬.

在考虑到这种应用的情况下,是否有不同的架构?

javascript php ajax structure project

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

对于node.js,是否存在Python的argparse等效模块?

argparse for python使得它可以快速轻松地处理命令行输入,处理位置参数,可选参数,标志,输入验证等等.我已经开始在node.js中编写应用程序了,我发现手动编写所有这些内容非常繁琐且耗时.

是否有node.js模块来处理这个?

module command-line-arguments node.js

6
推荐指数
3
解决办法
2741
查看次数

本机 Ruby 模块出现错误“找不到指定的模块。” 这不是真的

我刚刚使用以下命令安装了适用于 Windows 的 Ruby gem“sqlite3”

>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=c:/sqlite3/include --with-sqlite3-lib=c:/sqlite3/lib --with-sqlite3-dir=c:/sqlite3/bin
Run Code Online (Sandbox Code Playgroud)

它编译看起来很完美,但是当我尝试包含 gem 时,我得到:

irb(main):001:0> 需要“sqlite3”
LoadError:126:找不到指定的模块。- C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3/sqlite3_native.so
        来自 C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        来自 C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        来自 C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3.rb:6:in `rescue in '
        来自 C:/Ruby200/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.9/lib/sqlite3.rb:2:in `'
        来自 C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require'
        来自 C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:135:in `require 中的救援'
        来自 C:/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:144:in `require'
        来自(irb):1
        来自 C:/Ruby200/bin/irb:12:in `'

所以我检查了它为“sqlite3_native.so”提供的路径,你瞧,它就在那里!就像它应该的那样。那么鲁比为什么要对我撒谎呢?我怎样才能找出宝石不起作用的真正原因?

我手动构建 gem 的原因是预构建的 gem 带有过时的 SQLite3 版本

ruby sqlite

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