2011-12-07 4 views
0

admin_getcontents 함수가있는 ImportController가 있습니다. 내가 함께// 관리/가져 오기/getcontents 전화 아약스를 통해cakePHP URL을 매개 변수로 전달

function admin_getcontents($url = null) 
{ 
    $contents = json_decode(file_get_contents(($url)),true); 
    //some stuff 
} 

:

$.get('/admin/import/getcontents/'+ encodeURIComponent($('#urlcheck').val()) ,function(data) { 
     $('#importtable').html(data); 
     $('#busy-indicator').fadeOut('high'); 
}); 

그래서 페이지를 호출/관리자/가져 오기/getcontents/HTTP % 3A % 2F % 2Flocalhost % 2Feclipse % 2Fanarxeio % 2Fexport % 2Fcontents % 2F

Apache에서 404 오류가 발생합니다./admin/import/getcontents/1을 호출하면 페이지가 올바르게로드됩니다. 그래서 나는 통과 할 줄 알았다? ?

관리자/가져 오기/getcontents/HTTP % 3A % 2F % 2Flocalhost % 2Feclipse % 2Fanarxeio % 2Fexport % 2Fcontents % 2F 이제

내가 404 오류가 발생하지 않지만 $의 URL PARAM : 같은 매개 변수 전에 in admin_getcontents()가 비어 있습니다. 위의 내용을 어떻게 달성 할 수 있습니까?

감사

답변

0

빠른 수정은 URL 인코딩 트리플 URL을하는 것입니다 : 당신이 그것을 사용하기 전에 PHP에서

// javascript 
$.get('/admin/import/getcontents/'+ encodeURIComponent(encodeURIComponent(encodeURIComponent($('#urlcheck').val()))) ,function(data) { 
    $('#importtable').html(data); 
    $('#busy-indicator').fadeOut('high'); 
}); 

다음 URL을 디코딩을 :

// php 
function admin_getcontents($url = null) 
{ 
    $url = urldecode(urldecode($url)); 
    $contents = json_decode(file_get_contents(($url)),true); 
    //some stuff 
} 

편집을 다음 댓글 :

url 매개 변수를 전달하도록 라우팅을 설정하십시오. 설정을 보면 다음과 같이 표시됩니다.

Router::connect('/admin/import/getcontents/:url', array(
    'controller' => 'import', 
    'action'  => 'getcontents', 
    'admin'  => true), 
    array(
    'url' => '(.*)', 
    'pass' => array('url') 
) 
); 
+0

아니요. 작동하지 않습니다. 문제는 $ _REQUEST의 배열에 URL이 있기 때문에 cakePHP와 관련이 있습니다. 그러나 cakePHP는 함수 param을 인식하지 못합니다. – gong

+0

아, 죄송합니다. 경로를 올바르게 설정했다고 가정했습니다. 나는 그것을 시험했으며 작동한다. 내 대답을 업데이트하겠습니다. –

+0

게다가 404를 받고 있다고하셨습니까? 404를 얻으면 요청 개체를 어떻게 볼 수 있습니까? –