如何在IE中使用XDomainRequest伪造PUT或DELETE请求?或者我需要使用框架传输吗?
我正在尝试访问为CORS设置的restful API。它适用于所有其他浏览器,但我不知道如何在IE中伪造PUT/DELETE操作。与XDomainRequest
,自定义头是不允许的,所以我不能添加HTTP_X_HTTP_METHOD_OVERRIDE
头据说告诉Rails识别json数据中的_method=put
参数。
我能想到的最好的解决方案是添加两个映射到#update和#destroy的新成员路由:
resources :posts do
member do
post :revise, :action => :update
post :annihilate, :action => :destroy
end
end
当你运行'rake routes'时添加了这些路由:
revise_post POST /posts/:id/revise(.:format) {:action=>"update", :controller=>"posts"}
annihilate_post POST /posts/:id/annihilate(.:format) {:action=>"destroy", :controller=>"posts"}
请注意,我最初尝试这样做:
resources :posts do
member do
post :update
post :destroy
end
end
希望它能创建这些路由:
update_post POST /posts/:id/update(.:format) {:action=>"update", :controller=>"posts"}
destroy_post POST /posts/:id/destroy(.:format) {:action=>"destroy", :controller=>"posts"}
但是它创建了:
POST /posts/:id(.:format) {:action=>"update", :controller=>"posts"}
POST /posts/:id(.:format) {:action=>"destroy", :controller=>"posts"}
看起来是重叠的,你永远不可能得到#destroy.