2010-07-28 4 views
1
나는 웹 서비스에 사용자 이름과 암호를 입력하고 "안녕하세요"

해서 getJSON 문제 (JQuery와)

이 내 코드 경고해서 getJSON를 사용하는 것을 시도하고있다

:

$.getJSON(address+"?format=json&jsoncallback=?", {CustomerEmail: email, Password: password}, 
    function(){ 
    alert("hi"); 
}); 

HTTP 헤더

는 (200) 메시지를 전송 그래서 괜찮을 거에요하지만 그것은 기능을 입력하지 않습니다, 아무도 왜 제발 알아?

+0

페이지가 동일한 서버에 있습니까? 대부분의 사용자가 동일한 출처 정책을 위반하고있는 것 같습니다 : http://en.wikipedia.org/wiki/Same_origin_policy –

+0

@ Felix Kling :'jsoncallback ='이 쿼리 문자열 내에 있고'jsonp'로 취급되면 isnt 그것? – jAndy

+0

아니요 같은 서버에 없습니다 –

답변

4

페이지가 동일한 서버에 있습니까? 가장 가능성이 높은 사용자는 same-origin policy입니다.

당신은 JSONP하지만 .getJSON()의 사용을 만들 수있는 매개 변수가 callback 대신 jsoncallback의 이름을 기대 : "콜백 ="

JSONP

를 URL 문자열을 포함하는 경우 URL에서 요청은 대신 JSONP로 처리됩니다. 자세한 내용은 $.ajax()에있는 jsonp 데이터 형식에 대한 설명을 참조하십시오.

그래서 귀하의 경우에 작동하도록, 당신은 $.ajax()으로 시도 할 수 :

$.ajax({ 
    url: address+"?format=json", 
    data: {CustomerEmail: email, Password: password}, 
    dataType: "jsonp", 
    jsonp: "jsoncallback", 
    success: function(data) { 
    alert("hi"); 
    } 
}); 
+0

그럼 내가 어떻게 webservice에 데이터를 제출까요? –

+0

@ C. : 아, 미안, 내가 추가 잊어 버린, 내 대답 (하지만 실제로 설명서에 설명되어 있습니다.)) –

1

확인, 귀하의받은 JSON 데이터가 유효합니다. 특히 모든 문자열 (속성 이름 포함)은 적절하게 "인용"됩니다. JQuery와 문서에서

:

중요 : JSON 파일에 구문 오류가있는 경우 jQuery를 1.4, 요청은 일반적으로 자동 을 실패합니다. 이러한 이유로 JSON 데이터를 자주 손으로 편집하지 마십시오 ( ). JSON은 JavaScript의 개체 리터럴 표기법보다 엄격한 구문 규칙을 사용하는 데이터 교환 형식입니다. 예를 들어, 모든 문자열은 JSON에서 으로 표시되며 속성이 이든 또는 값이든간에 큰 따옴표로 묶어야합니다 ( ). JSON 형식에 대한 자세한 내용은 http://json.org/을 참조하십시오.