CherryPy在nsIXMLHttpRequest上返回状态301(但对于firefox HTTP请求可以正常工作)

时间:2011-09-30 12:36:04

标签: python ajax cherrypy

我正在使用CherryPy开发Web API。目的是通过nslXMLHttpRequest通过JavaScript访问它。当我通过Firefox访问API时(好像它是一个普通的URL),我的日志中会出现以下内容:

!!!SUCCESS!!!
[my IP] - - [30/Sep/2011:08:30:19] "GET /myAPI/ HTTP/1.1" 200 11 "" "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"

那“!!! SUCCESS !!!”在myAPI页面上运行的代码的开头打印。但是当我通过JavaScript访问它时,我的日志中会出现以下内容:

[my IP] - - [30/Sep/2011:08:32:19] "GET /myAPI?arg1=value1&arg2=value2 HTTP/1.1" 301 221 "[requesting page]" "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"

(这些参数是可选的)

请注意,在第二种情况下,!!! SUCCESS !!!从未打印过(我的代码从未执行过),状态代码为301 - “永久移动”。知道什么会导致CherryPy这样做吗?

1 个答案:

答案 0 :(得分:3)

可能是因为/myAPI/myAPI/不是相同的URI,所以它会将您从一个重定向到另一个。您可以使用http://docs.cherrypy.org/dev/refman/lib/cptools.html#cherrypy.lib.cptools.trailing_slash

微调此行为