[英]calling a phalcon php MVC controller via ajax
我正在使用帶有phalcon PHP和AngularJs的簡單應用程序。 我試圖通過AJAX POST請求從angularJS控制器調用我的phalcon PHP控制器。
$http.post('/ControllerName/', {params});
我得到
404在此服務器上找不到請求的URL / ControllerName /
我認為我的請求被路由到我的公用文件夾,而我的php控制器位於非公用文件夾中。
這些是我擁有的.htaccess規則
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]</IfModule>
並在公用文件夾中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]</IfModule>
我究竟做錯了什么?
好的,我的問題在於我認為的重寫機制。 首先,在httpd.conf文件中,我必須:
假設您使用的是默認版本的phalcon且正在正常工作,我建議您檢查是否有斜杠,有關此的手動說明: http : //docs.phalconphp.com/en/latest/reference/routing.html錨點#extra-with-extra-trailing-slashes
您還可以使用自定義腳本測試路線:之前使用相同的網址,錨定#testing-your-routes
...或..您可以通過偵聽調度程序進行調度:beforeDispatchLoop ,將您的鼻子伸到路由系統中,以嘗試查找故障的出處: http ://docs.phalconphp.com/en /latest/reference/dispatching.html#inject-model-instances ,您可以在事件函數中看到框架如何猜測控制器和動作名稱:
//Possible controller class name
$controllerName = Text::camelize($dispatcher->getControllerName()) . 'Controller';
//Possible method name
$actionName = $dispatcher->getActionName() . 'Action';
...它們應該存在,以便成功進行路由,順便說一句示例代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.