错误NetworkError: 405 Method Not Allowed
我正在使用网络服务,突然间它开始返回该错误。它没有维护,所以它不会得到修复。我很好奇我是否可以为此做些什么。
违规的网络服务网址为:http://jsonpdb.appspot.com/add
答案 0 :(得分:8)
应用程序不支持您尝试在该URL上使用的方法(GET / POST / HEAD等)。您确定API希望您使用您在该网址上使用的方法吗?
答案 1 :(得分:6)
最常见的原因是对响应使用了错误的“get”vs“post”。验证发送的内容以及处理程序中是否显示了正确的方法。
class MainHander(webapp.RequestHandler):
def get(self):
...
def post(self):
....
def delete(self):
....
另一个常见问题是让主调度部分解析网址,但是不能在get / post / delete中提供它们
def main():
application = webapp.WSGIApplication(
[ (r'/upload/([^/]+)?/?', UploadFileHandler),
正则表达式中有()
...这是url路径中的参数,如:/upload/filename
class UploadFileHandler(webapp.RequestHandler):
def post(self, filename):
...
提供代码链接会很有帮助。
答案 2 :(得分:2)
我知道这是一个旧帖子,但我没有找到一个满意的答案来满足我自己的需要。特别是如果您正在处理AJAX响应,您可能希望通过在自定义WebApp2处理程序的分派中检查它们来明确允许OPTIONS请求:
class MyHandler(webapp2.RequestHandler):
def __init__(self, request, response):
self.initialize(request, response)
#The dispatch is overwritten so we can respond to OPTIONS
def dispatch(self):
self.response.headers.add_header("Access-Control-Allow-Origin", "*")
if self.request.method.upper() == 'OPTIONS':
self.response.status = 204
self.response.write('')
else:
super(MyHandler, self).dispatch();