我收到此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!?
首先:我不是指从process.argv数组中解析参数和选项,而是提示用户并处理输入/输出.我查看了Node.js官方模块列表,但未找到提及输入的任何部分或子部分.事实上,在该页面上搜索"输入"只能得到1个与YAML有关的结果.
无论如何,我认为cli输入应该是异步的,我在使用之前已经解决了这个问题stdin.on('data'),至少可以说它是混乱的.这对于节点模块来说似乎是一个完美的任务,它可以带有额外的好处,如进度条,微调器,彩色输出,输入验证等.
可能有一些模块可以做到这一点,但我找不到任何模块.
救命!!
(为了澄清,我需要的唯一功能是简化处理用户输入)
我正在努力完成这样的事情:
SELECT *
FROM information_schema.`tables`
JOIN (SHOW CREATE TABLE) # <-- need help here
WHERE table_schema LIKE 'tables\_%'
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个查询中执行此操作?
我有一台运行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 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')构造函数中.
我有一个Hash看起来像这样的数据结构():
{
foo: "Test string",
bar: [475934759, 5619827847]
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个校验和,Hash以检查将来是否相等.我尝试使用它的hash方法Hash,这导致了一个令人满意的好看的哈希,但事实证明,在Hash重新启动解释器后,相同的将产生不同的哈希.
我真的希望能够从创建〜128位的校验和Hash,String或Array实例.
这可能吗?
我正在尝试测试一个缓存类,其中应该自动删除旧项.缓存可以容纳的项目数量由"常量"类变量控制,如下所示:
class Cache(dict):
MAX_ITEMS = 100
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我想在单个测试用例的持续时间内更改该常量.使用unittest.mock.patch我可以用一个替换类变量,MagicMock但这不是我想要做的.我只需要用不同的号码替换它.
有没有一种优雅的方法在Python(像patch)中执行此操作,或者我应该自己重置变量tearDown?
我正在使用Python 3.4.3
我即将开始另一个大型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用于这样的项目似乎有点尴尬.
在考虑到这种应用的情况下,是否有不同的架构?
argparse for python使得它可以快速轻松地处理命令行输入,处理位置参数,可选参数,标志,输入验证等等.我已经开始在node.js中编写应用程序了,我发现手动编写所有这些内容非常繁琐且耗时.
是否有node.js模块来处理这个?
我刚刚使用以下命令安装了适用于 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 版本