CherryPy在nsIXMLHttpRequest上返回状态301(但在Firefox HTTP请求中正常)

2 投票
1 回答
504 浏览
提问于 2025-04-17 03:25

我正在用CherryPy开发一个网络API,目的是让JavaScript通过nslXMLHttpRequest来访问它。当我通过Firefox访问这个API,就像访问普通网址一样,我的日志里出现了以下内容:

!!!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!!!”是在我的API页面上运行的代码开始时打印出来的。但是当我通过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 个回答

4

可能是因为 /myAPI/myAPI/ 不是同一个网址,所以系统会把你从一个网址重定向到另一个。你可以通过这个链接来调整这个行为:http://docs.cherrypy.org/dev/refman/lib/cptools.html#cherrypy.lib.cptools.trailing_slash

撰写回答