我写了以下代码:
if(arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){
$term_id = arg(2); // Your Term Id
// if you fetch more data then load the taxonomy
$term_obj = taxonomy_term_load($term_id);
print "<pre>";
print_r($term_obj);
print "</pre>";
}
奇怪的是,一旦我收到路径&#34; / healthcheck&#34;的GET请求,我就进入控制台:
行
和
无法处理此请求
我希望只获得&#34; OK&#34;,然后该方法必须返回。 你知道如何实现它吗?
答案 0 :(得分:2)
您可能会收到多个请求,其中一个请求不是get请求。您可以通过插入日志语句
来监控服务器答案 1 :(得分:1)
我终于发现我的浏览器确实发送了两个请求。 第一个请求是GET localhost:8080 / healthcheck,第二个请求是GET localhost:8080 / favicon。
GET localhost:8080 / favicon不满足条件,代码打印&#34;此请求无法处理&#34;。
答案 2 :(得分:0)
您正在尝试处理预检请求。
根据MDN
与简单请求不同的预检请求(如上所述), “preflighted”请求首先发送HTTP OPTIONS请求标头 其他域上的资源,以确定是否 实际请求可以安全发送。跨站点请求是预先检定的 像这样,因为它们可能会影响用户数据
试试这个
public static void handleRequest(HttpServerRequest request, Vertx vertx) throws FileNotFoundException {
if(request.method() == HttpMethod.OPTIONS) {
return;
}
if (request.method() == HttpMethod.GET) {
if (request.path().equals("/healthcheck")) {
returnResponse(request, "I'm alive!!!\n", true);
System.out.println("OK");
return;
}
...
}
returnResponse(request, "Not Valid Request", false);
System.out.println("This request cannot be handled");
}