2014-07-18 2 views
1

사이트를 CakePHP로 만들었습니다. jquery 아약스와 함께 HTTP 게시물을 보내고 싶습니다. (cakePHP가 도우미를 가지고 있지만 더 유연하기 때문에 jQuery를 사용하고 싶습니다.)jQuery 아약스가 아무것도 보내지 않음

내 JQuery와 기능 : 키 - 값 쌍은 하드 코드 테스트 목적

function warrantyqueryPost(ServiceorderSerial, ServiceorderUserId){ 

    var data = { 'data[Warrantyqueries][serial]' : 123, 'data[Warrantyqueries][user_id]' : 4 } 

    var url = '/warrantyqueries/add'; 

    alert(url); 
    $.ajax({ 
     type: 'post', 
     url: url, 
     data: data, 
     success: function(){ 
      alert('hat geklappt'); 
     }, 
     error: function(){ 
      alert('nein'); 
     } 
    }); 

    alert('test'); 
} 

은 (어떤 실수를 피하기 위해). 이 함수는 호출되었지만 ajax 호출은 실행되지 않습니다. 아무 반응이 없습니다.

포스트 방법의 절대 URL은 심지어 그 어떤 성공을 시도하지

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

입니다.

function warrantyquery(ServiceorderSerial, ServiceorderUserId){ 
    alert('test'); 
    var url = '/serviceordersystem/index.php'; 

    var jqxhr = $.get(url, function() { 
     alert("success"); 
    }) 
     .done(function() { 
      alert("second success"); 
     }) 
     .fail(function() { 
      alert("error"); 
     }) 
     .always(function() { 
      alert("finished"); 
     }); 
} 

아무런 변화가 없습니다 : 테스트 이유로

나는 아주 간단한 아약스 GET을 시도했다. 브라우저에서 주소를 호출하면 정확한 문자열이 반환됩니다.

업데이트 저에게는 jquery가 작동하지 않는 것 같습니다. 대기, 내가 확인합니다 ...

+0

무슨 말을 하시겠습니까 ur 브라우저의 콘솔을 참조하십시오 .. – Confused

+0

와 함께 문제를 해결하려면 경고()를 사용하지 마십시오. 대신 console.log()를 사용하십시오. 브라우저의 개발자 도구를 열고 요청/응답주기를 확인하십시오. 또한 JavaScript/jQuery 오류가 표시됩니다. –

답변

0

나는 발견 그 링크 JQuery와 라이브러리가 손상되었습니다. 라이브러리를 다시 다운로드하면 이제 작동 중입니다.

0

'index.php'로 바로 된 URL입니까?

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

는 안 : 대신

http://localhost:8080/serviceordersystem/warrantyqueries/add 

?

Chrome 개발자 도구를 사용하여 요청을 디버그하고 응답 코드를 볼 수 있습니다. URL이 잘못되면 404가 반환됩니다. Chrome DT 또는 Firebug에 아무 것도 표시되지 않으면 Ajax 요청이 실행되지 않고 URL 문제가 아님을 의미합니다.

+0

예. 앱의 라우터 때문입니다. 내 의견을 Spokey의 제안을 참조하십시오. – mosquito87

+0

F12 (개발자 도구)를 클릭하고 응답 코드를 볼 수 있습니까? URL이 잘못되면 404가 반환됩니다. – Jirico

0

일 가능성이 큽니다. 당신은 절대 경로가

http://localhost:8080/serviceordersystem/index.php/warrantyqueries/add 

하지만

http://localhost:8080/warrantyqueries/add 

당신은 일이 순서대로 절대 경로를 사용해야합니다 발생합니다 /warrantyqueries/add 당신의 URL을 사용하여 말한다.

피씨 : 경험상 나는 경험상 $.ajax()http://localhost에 문제가있었습니다. 이것이 여전히 실패 할 경우 IP를 대신 사용하는 것이 좋습니다.


향후 디버깅을 위해 브라우저 콘솔을 열고 오류 및 네트워크 요청을 확인하십시오. 또한 오류 방법을 확장하는 것을 고려하십시오.http://api.jquery.com/jquery.ajax/

오류 유형에서 촬영 예를

error: function(jqXHR, textStatus, errorThrown) { 
    console.log(textStatus, errorThrown); 
} 

를 들어

: 기능 (jqXHR jqXHR, 문자열 textStatus, 문자열 errorThrown는)

+0

작동하는 양식에서이 양식의 동작은

... 그래서 URL은 /serviceordersystem/index.php/warrantyquery/add가되어야한다고 생각합니다 ... 시도했습니다. 여전히 성공하지 못했습니다. – mosquito87

+0

디버깅에 대한 힌트를 주셔서 감사합니다. 내 "간단한 기능"에 대한 업데이트를 수행 했습니까? 아직도 출력이 없습니다. – mosquito87

+0

@ mosquito87 경고 오류입니까? 그렇다면 내 대답 – Spokey

관련 문제