我正在使用Rails 4创建一组服务,我正在使用JavaScript浏览器应用程序.跨源GETS工作正常,但我的POST未通过预检OPTIONS检查404错误.至少,我认为这是正在发生的事情.以下是控制台中出现的错误.这是Mac上的Chrome 31.0.1650.63.
OPTIONS http://localhost:3000/confessor_requests 404 (Not Found) jquery-1.10.2.js:8706
OPTIONS http://localhost:3000/confessor_requests No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. jquery-1.10.2.js:8706
XMLHttpRequest cannot load http://localhost:3000/confessor_requests. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. main.html:1
Run Code Online (Sandbox Code Playgroud)
我已经搜索了关于启用CORS的指令的高低,我很难过.通常的建议似乎是将这样的东西放在Application控制器中,我做了.
before_filter :cors_preflight_check
after_filter :cors_set_access_control_headers
def cors_set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, PUT, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = "1728000"
end
def cors_preflight_check
if request.method == :options
headers['Access-Control-Allow-Origin'] = …Run Code Online (Sandbox Code Playgroud) xmlhttprequest rails-routing http-method cors ruby-on-rails-4
如何在CodeIgniter控制器类中检测HTTP方法?
编辑:
除了$_SERVER['REQUEST_METHOD']在CodeIgniter中使用之外还有其他方法吗?
今天使用Postman时我注意到了方法选项PURGE.我从未在实践中遇到它,也无法找到它的目的的解释.
这个方法用的是什么,它来自何处,是否有某种规格?
例如,HttpServletResponse将HTTP状态代码作为常量
public static final int SC_OK = 200;
public static final int SC_CREATED = 201;
public static final int SC_BAD_REQUEST = 400;
public static final int SC_UNAUTHORIZED = 401;
public static final int SC_NOT_FOUND = 404;
Run Code Online (Sandbox Code Playgroud)
在Java EE API中的任何地方都有为HTTP方法定义的任何此类常量GET,POST以便可以轻松引用它,而不是自己创建一个吗?
我正在写一个网络服务.任何人都可以解释一下这些方法并给我一些关于它们的例子吗?谢谢您帮忙.
Spring Security参考说明:
您可以使用多个元素为不同的URL集定义不同的访问要求,但它们将按列出的顺序进行评估,并将使用第一个匹配项.所以你必须把最具体的比赛放在最上面.您还可以添加方法属性以限制与特定HTTP方法(GET,POST,PUT等)的匹配.如果请求与多个模式匹配,则无论排序如何,特定于方法的匹配都将优先.
如何配置Spring Security,以便根据用于访问URL模式的HTTP方法,以不同方式保护对特定URL模式的访问?
Fiddler捕获了很多HTTP OPTIONS调用,我对此并不感兴趣.
是否可以忽略这些并且只能看到GET和POST?
我最初的目的是验证HTTP分块传输.但不小心发现了这种不一致.
API旨在将文件返回给客户端.我用它HEAD和GET方法来对付它. 返回不同的标头.
因为GET,我得到这些标题:(这是我的预期.)
对于HEAD,我得到这些标题:
根据这个线程,HEAD并且GET 应该返回相同的标题,但不一定.
我的问题是:
如果Transfer-Encoding: chunked使用,因为该文件是动态反馈给客户端和Tomcat服务器无法知道它的大小提前,怎么可能Tomcat的知道Content-Length何时HEAD使用哪种方法?Tomcat只是干运行处理程序并计算所有文件字节?为什么不简单地返回相同的Transfer-Encoding: chunked标题?
下面是我使用Spring Web MVC实现的RESTful API :
@RestController
public class ChunkedTransferAPI {
@Autowired
ServletContext servletContext;
@RequestMapping(value = "bootfile.efi", method = { RequestMethod.GET, RequestMethod.HEAD })
public void doHttpBoot(HttpServletResponse response) {
String filename = "/bootfile.efi";
try {
ServletOutputStream output …Run Code Online (Sandbox Code Playgroud) 给定一个网页,我想检测:
http请求?http法(POST,
GET相关要求等).我认为这是一个棘手的问题..但有没有任何指标可以暗示一个或另一个选项?
每当我必须创建一个RESTful Web服务并且用例意味着根据一组搜索条件获取数据时,我总是选择在主体中使用参数而不是GET请求的POST请求,原因很明显.我已经看过十几次,所以我认为这是最好的做法.
最近我偶然发现了Evert Pot的这篇有趣的博客文章,他在评论POST动词的缺点时,简单地说明了使用REPORT动词.他还指出"它的语义定义明确,并且无处不在".看完这篇文章之后,我一直试图找到关于这个REPORT动词的更多信息,但找不到多少.我知道它是RFC-3253的一部分,作为获取资源信息的一种方式,但除此之外我一无所知.
我的问题如下:
HTTP Method REPORT not supported从各种工具和框架中看到了很多
问题.先感谢您.
http-method ×10
http ×4
java ×2
chunked ×1
codeigniter ×1
constants ×1
cors ×1
fiddler ×1
html ×1
http-verbs ×1
javascript ×1
php ×1
servlets ×1
spring ×1
tomcat8 ×1