2013-10-18 2 views
0

나는 다음과 같은 Ajax 호출이 있습니다JQuery와 아약스 성공 함수가 호출되지

$.ajax({ 
    type: 'POST', 
    url: myBaseUrl + 'Products/addItemToBasket', 
    dataType: 'json', 
    data: { 
     id: window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1), 
     amount: amount 
    }, 
    success: function (data) { 
     alert(data); 
     var dat = JSON.parse(data); 
     } 
    } 
}); 

지금이 PHP에서 다음 메소드를 호출 : 나는 모든 것이 작동을 디버깅 할 때

public function addItemToBasket() 
{ 
    if ($this->request->is('post')) { 
     //todo delete efter at have insat fancybox med valg af antal styk. (sendes via ajax). 
      $shopping = null; 
      $item = $this->Product->find('first',array('conditions' => array('Product.id' =>$this->request->data['id']))); 
     if(isset($_SESSION['basket'])){ 
      $shopping = $_SESSION['basket']; 
     }else{ 
      $shopping = array(); 
     } 
     array_push($shopping,$item); 
     $_SESSION['basket'] = $shopping; 
     echo json_encode($_SESSION['basket']); 
    } 
} 

을 (를 php 함수에 들어간다.) 그리고 내 $_SESSION 변수를 업데이트한다.

그러나 결코 성공 함수를 실행하지 않으며 결코 데이터를 경고하지 않습니다.

내가 뭘 잘못하고 있니?

+3

당신은'json_encode '을 반향 출력해야합니까? . .'? –

+0

this-> request-> is ('post')를 사용하면 cakephp 앱이라고 믿을 수 있습니다. 그렇다면 에코는 출력을 덤프하지 않으므로 연결된 뷰에서 실제로 출력해야합니다. 또한 cakephp와 함께 taggin이 도움이 될 수도 있습니다. – jhnlsn

+0

경고 ("테스트")하거나 중단 점을 설정하면 어떨까요? 성공 함수를 입력하지 않았습니까? –

답변

2

참고 :이 질문은 몇 달 전의 내용이지만 어떤 종류의 문제에 대한 답변을 찾는 사람들에게 도움이 될 것입니다.

내가 아는 한, 비슷한 문제로 실행 중이므로, 모두 웹 서비스에서 응답을받습니다 (Chrome 디버깅 콘솔에서 확인할 수 있습니다). 예를 들어, 지금이납니다 :

  • readyState가 4
  • 가하는 statusText : "OK"
  • 에서 responseText는 (결과는 내가 찾고 있어요)

문제는, 당신이 말했듯이, 나는 항상 올바른 responseText를 얻고있다하더라도 콜백의 오류 부분을 성공으로 가져 오지 못한다. 필자가 읽었던 것은 WS에 대한 호출이 OK 였기 때문입니다.하지만 JSON에서 파싱하는 것이 아니므로 "오류"를 호출합니다.

지금까지 나는 그것을 고치는 방법을 모른다. 그러나 아마 이것은 단서를 줄 것이다.

+0

StackOverflow에 오신 것을 환영합니다! 질문에 대한 대답이 확실한 경우에만 대답하십시오. –

+0

알았습니다! 더 도움이되지 않아서 미안해. 조언 해 주셔서 감사합니다. –

관련 문제