我有一個運行在http://localhost
的Windows 7上的Apache 2.2.21實例,它使用mod_rewrite將請求從/backend
開始重定向到http://localhost:8080
。 http://localhost:8080
服務器又是一個CherryPy 3.2.0服務器,用於接受POST JSON消息並用JSON消息響應。使用AJAX和mod_rewrite時,標題和POST數據消失
我的問題是,當我嘗試使用AJAX POST到http://localhost/backend
時,CherryPy服務器最終看到一條沒有請求頭並且沒有附加JSON數據的消息。它因此返回一個400 BAD REQUEST錯誤。但我也有以Excel和.NET構建的應用程序,它們發送類似的消息給http://localhost/backend
,沒有任何問題。另外,我試過在http://localhost/route
(使用Django)上設置了一個頁面,它將AJAX POST傳遞給http://localhost:8080
;這工作完美。
我的問題是爲什麼AJAX POST到`http:// localhost/backend'不起作用。也許這與AJAX安全有關?使用jQuery會像
$.post(
"/backend",
JSON.stringify({"type": "getdata", "id": "1"}),
function(data) {
alert("Done");
}
);
和Apache的配置文件中的相關章節
實例JavaScript是
RewriteEngine on
RewriteRule ^/backend http://localhost:8080 [proxy]
CherryPy的是,沒有特殊的啓動選項運行:
cherrypy.config.update({'server.socket_port': 8080})
cherrypy.quickstart(MyServer())
不應該'[代理]'是'[P]'? –
我相信[proxy]和[P]是一回事。 – Abiel