我的mac问题.我无法从浏览器或使用curl cmd发送http选项请求.我不知道为什么.它对我的comp上的所有用户都不起作用.我关闭了防火墙和所有不必要的服务,但问题仍然存在.
我录制了显示问题的视频:
我在 spring 框架中有一个带有可选 PathVariable 的休息端点。
@PostMapping("/API_PATH/{param1}/{param2}")
public Result getResult(@PathVariable Integer param1,
@PathVariable(required = false) Integer param2, @RequestBody Data data) {
// SOME LOGIC HERE
}
Run Code Online (Sandbox Code Playgroud)
我已将param2Path 变量标记为不需要。所以它是一个可选值。当我不将任何值发送到param2. 但是当浏览器尝试访问此 API 时,它会OPTIONS在发送实际POST请求之前发送一种类型的请求。现在,如果OPTIONS请求不包含param2URL 中的第二个路径变量 ( ),则它会因 404 异常而失败。有没有办法解决这个问题?
需要在Perl中发送HTTP OPTIONS请求.看了几个CPAN模块; 阅读文档,没有提到OPTIONS请求方法,只需要GET,POST,PUT,DELETE.
我需要手动格式化吗?或者是否有可能是我的谷歌缺少的另一个图书馆/模块?
我试图让 OPTIONS 请求与 django 一起工作,但我目前只得到 405。我在这里得到的答案是服务器不处理 OPTIONS 请求。
这是处理请求的视图:
from django.views.generic import View
from piston.utils import coerce_put_post
class TheView(View):
@staticmethod
def find_stuff(params):
...
@staticmethod
def do_stuff(params):
...
@staticmethod
def do_other_stuff(params):
...
@staticmethod
def delete_some_stuff(params):
...
@method_decorator(staff_member_required)
def get(self, request, id):
result = self.find_stuff(id)
return JsonResponse(result)
@method_decorator(staff_member_required)
def post(self, request):
result = self.do_stuff(request.POST)
return JsonResponse(result)
@method_decorator(staff_member_required)
def put(self, request, id):
coerce_put_post(request)
result = self.do_other_stuff(id,request.PUT)
return JsonResponse(result)
@method_decorator(staff_member_required)
def delete(self, request,id):
result = self.delete_some_stuff(id)
return JsonResponse(result)
Run Code Online (Sandbox Code Playgroud)
我正在使用 jQuery 的 $.ajax() …
我必须在没有任何文档的情况下为我的 Android 应用程序使用 API。在我工作之前,我总是有文档,所以这对我来说是一个新情况。后端开发人员表示他们的 API 支持选项请求。如何发送选项请求?使用浏览器还是什么?以及如何找出应该在 POST 请求正文中放入哪些内容?提前感谢您的帮助!