小编mik*_*ong的帖子

如何允许CORS?

我试图在我的Node.js应用程序中支持使用Express.js Web框架的CORS.我已经阅读有关如何处理此问题的Google小组讨论,并阅读了一些有关CORS如何工作的文章.首先,我这样做了(代码是用CoffeeScript语法编写的):

app.options "*", (req, res) ->
  res.header 'Access-Control-Allow-Origin', '*'
  res.header 'Access-Control-Allow-Credentials', true
  # try: 'POST, GET, PUT, DELETE, OPTIONS'
  res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS'
  # try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'
  res.header 'Access-Control-Allow-Headers', 'Content-Type'
  # ...
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用.好像我的浏览器(Chrome)没有发送初始OPTIONS请求.当我刚刚更新资源块时,我需要将跨源GET请求提交到:

app.get "/somethingelse", (req, res) ->
  # ...
  res.header 'Access-Control-Allow-Origin', '*'
  res.header 'Access-Control-Allow-Credentials', true
  res.header 'Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'
  res.header 'Access-Control-Allow-Headers', 'Content-Type'
  # ...
Run Code Online (Sandbox Code Playgroud)

它有效(在Chrome中).这也适用于Safari.

我读过......

在实现CORS的浏览器中,每个跨源GET或POST请求前面都有一个OPTIONS请求,用于检查GET或POST是否正常.

所以我的主要问题是,为什么在我的案例中似乎没有发生这种情况?为什么我的app.options块没有被调用?为什么我需要在主app.get块中设置标题?

node.js cors coffeescript express

609
推荐指数
17
解决办法
57万
查看次数

从命令行伪造socket.io连接

一旦你有一个失败的复杂socket.io + node.js设置,如何在不使用浏览器的情况下进行一些测试?你知道是否可以创建使用socket.io与"master"node.js服务器通信的node.js客户端?(与浏览器交谈的那个).当然,浏览器中的逻辑将被复​​制到那些客户端中,但仍然......

javascript testing node.js socket.io

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

无法使用JavaScript关闭WebSocket

我试图通过以下方式关闭我的websocket:

socket.close();
Run Code Online (Sandbox Code Playgroud)

但是我在Safari 5.0.4上收到错误:

TypeError: Result of expression 'socket.close' [undefined] is not a function.
Run Code Online (Sandbox Code Playgroud)

如何正确关闭我的网络套接字?

javascript sockets safari websocket socket.io

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

Heroku - PGError:错误:"ENGINE"处或附近的语法错误

我想跑

heroku rake db:migrate
Run Code Online (Sandbox Code Playgroud)

在heroku上运行我的迁移,前两次迁移运行得很好,但第三次迁移看起来像这样

create_table :charities, :options => "ENGINE=MyISAM" do |t|
  t.string :name,               :null => false
  t.string :title,              :null => false
  t.timestamps
end

add_index :charities, :name
add_index :charities, :title


Migrating to CreateCharitiesAndThemes (20091019140537)
==  CreateCharitiesAndThemes: migrating =======================================
-- create_table(:charities, {:options=>"ENGINE=MyISAM"})
rake aborted!
An error has occurred, this and all later migrations canceled:

PGError: ERROR:  syntax error at or near "ENGINE"
LINE 1: ..., "created_at" timestamp, "updated_at" timestamp) ENGINE=MyI...
                                                             ^
: CREATE TABLE "charities" ("id" serial primary key, "name" character …
Run Code Online (Sandbox Code Playgroud)

ruby migration ruby-on-rails heroku

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