2012-01-11 2 views
1

TRUE 또는 FALSE 메시지가있는 HTML 페이지를 반환하는 외부 컨트롤러 페이지를 호출하는 로그인 양식이 있습니다. 나는이 jQuery를 기능을 작성했습니다jquery lib로 Ajax 교차 도메인 호출로 HTML 응답을 가로채는 방법

$("#login").click(function(){ 
$.ajax({ 
    dataType: 'jsonp', 
    data: $('#form_login').serialize(), 
    jsonp: 'jsonp_callback', 
    url: "http://news.univadis.it/autenticazione/autentication.asp", 
    complete: function(data, textStatus, XMLHttpRequest){ 
     $("#output").html(data); 
    } 
}); 
}); 

을하지만 메시지 "TRUE"또는 "FALSE"를 도장 할 때 방화범이 오류 반환 :이 응답이 HTML에 원인이있다

XML tag name mismatch (expected meta) </head> 

을 Json이 아닌 HTML 응답을 가로채는 방법은 무엇입니까?

답변

0

아니요, 작동하지 않습니다.

JSONP는 JSONP와 교차 도메인 리소스를 요청할 때 jQuery 라이브러리는 사용자가 제공 한 URL과 HTML 문서의 머리에 <script/> 노드를 삽입 요청, 실제로 해킹입니다. 당신의 AJAX 요청에서 그래서

는 다음과 같은 스크립트 노드가 생성됩니다 :

<script type="text/javascript" src="http://news.univadis.it/autenticazione/autentication.asp?jsonp_callback=jQuery17108946618142072111_1326271422070&_=1326271651101"/> 

은 물론 실제 매개 변수가 다를 수 있지만 그것은 다음과 같이 표시됩니다. 웹 서버는 준비된 JavaScript 응답을 보내야합니다. 준비된 응답은 실제 응답이 예에서, 자바 스크립트 함수 호출로 포장 된 것을 의미 : 그없이

jQuery17108946618142072111_1326271422070('this is your data'); 

콜백 당신이 당신의 응답을받을 수 없을거야합니다.

그래서 JSONP 요청으로 HTML 응답을 "차단"할 수 없습니다.

+0

죄송합니다. 응답을 관리하기 위해 '성공'상태 콜백을 올바르게 수정하려면 어떻게해야합니까? – davelab

관련 문제