Servlet接收OPTIONS而不是来自jQuery的GET请求?

时间:2010-05-07 17:11:53

标签: jquery http servlets fullcalendar

我想要实现的只是实现一个为我的fullcalendar应用程序提供json提要的servlet。当我用Bugzilla检查http://arshaw.com/js/fullcalendar/examples/json.html时,我看到发送GET请求以接收json提要。

但是,当我在我的场景中使用此示例时,fullcalendar似乎发送OPTIONS请求。唯一的区别是我用“http://localhost:8080/CalendarServletTest/HelloWorldServlet”(我的servlet的url)替换了“events:”json-events.php“。 我错过了什么?或者这真的是一个错误吗?

1 个答案:

答案 0 :(得分:2)

jQuery可能确实在需要触发跨域 XMLHttpRequest时执行此操作,而返回dataType不是jsonp。这是设计行为,可能取决于所使用的Web浏览器的安全配置。 HTTP OPTIONS请求应返回一个Allow标头,其中包含允许在特定URL上使用的请求方法列表,以便jQuery可以相应地继续。

这实际上不应该导致技术问题,但如果您不想让它触发OPTIONS请求,那么您需要让servlet在同一个域中运行,或者实现{{3因此(doOptions()默认情况下它的任务正确,所以这实际上不应该形成技术问题),或者在Fullcalendar的源代码中将dataType更改为HttpServlet(如果必要时还要向Fullcalendar的人报告。