AJAX

2015-03-14 9 views
8

के माध्यम से एक फाल्कन PHP एमवीसी नियंत्रक को कॉल करना मैं phalcon PHP और AngularJs के साथ सरल ऐप का उपयोग कर रहा हूं। मैं AJAX POST अनुरोध के माध्यम से angularJS नियंत्रक से अपने phalcon PHP नियंत्रक को कॉल करने का प्रयास कर रहा हूँ।AJAX

$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> 

क्या मैं गलत कर रहा हूँ?

+0

@ nicola.p - मैं एक मार्ग कॉन्फ़िगर करना चाहिए? मैं phalcon डिफ़ॉल्ट एक का उपयोग क्यों नहीं कर सकता? –

उत्तर

4

ठीक है, मेरी समस्या पुनर्लेखन तंत्र में थी जैसा मैंने सोचा था।

  1. बदलें "AllowOverride कोई नहीं" के लिए "AllowOverride सभी" प्रासंगिक निर्देशिका में: पहले, httpd.conf फाइल में मैं करने के लिए किया था।
  2. मेरे "mod_rewrite" विकलांग था, इसलिए मैं पड़ा अन-टिप्पणी लाइन: "# LoadModule rewrite_module मॉड्यूल/mod_rewrite.so"
0

धारणा पर आप एक डिफ़ॉल्ट और फाल्कन के काम तैनाती मैं तुम्हें ट्रेलिंग स्लैश के लिए जाँच करने के लिए सुझाव है कि प्रयोग कर रहे हैं, वहाँ उस के बारे में एक मैनुअल आवाज है: http://docs.phalconphp.com/en/latest/reference/routing.html लंगर # निपटने-साथ-अतिरिक्त-पीछे-स्लैश

आप भी एक कस्टम स्क्रिप्ट के साथ अपने मार्गों का परीक्षण कर सकते हैं: एक ही यूआरएल से पहले, लंगर # परीक्षण-your-मार्गों

... या .. आप मार्ग प्रणाली में अपनी नाक डाल जहां पता लगाने की कोशिश कर सकते हैं विफलता प्रेषण के लिए प्रेषक को सुनकर है: पहले डिस्पैच लूप, यहाँ कोड 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'; 

... वे तो एक सफल मार्ग के लिए मौजूद है चाहिए, btw उल्लेख उदाहरण कोड

+0

धन्यवाद, मैं इसे जांच और अपडेट करूँगा .. –