2014-06-24 4 views
0

jquery ajax를 사용하여 jsonp를 구현하는 샘플 예제를 작성하고 있습니다.Jquery jsonp ajax 콜백이 작동하지 않습니다.

누군가 아래의 예에서 'customcb'콜백 함수가 호출되지 않는 이유를 설명해주십시오. 혼란 스럽습니다. 클라이언트 응용 프로그램에서

아래 아래

$().ready(function() 
{ 

$.ajax({ 
url: 'http://localhost:55632/', 
type: 'GET', 
dataType: 'jsonp', 
jsonp: 'cbqs', 
jsonpCallback: 'customcb', 
success: function (data) 
{ 
alert('success'); 
}, 
error: function (XMLHttpRequest, textStatus, errorThrown) 
{ 
    alert(errorThrown); 
} 
}); 

function customcb() 
{ 
    alert('customcb'); 
    } 

}); 

그리고는 간단한 ASP.net MVC 작업은 서버 응용 프로그램

로 작성된 클라이언트 코드는,하는 ASP.NET MVC 서버 응용 프로그램에 $ 아약스 호출을하고있다
public class HomeController : Controller 
{ 
public string Index() 
{ 
Emp x = new Emp 
{ 
    fname = "first name", 
    lname = "last name" 
}; 

string json = JsonConvert.SerializeObject(x); 
Response.ContentType = "application/x-javascript"; 
string str = "customcb(" + json + ")"; 
return str; 
} 
.............. 
.............. 

예상 결과 : 'success'및 'customcb'경고 메시지가 모두 표시되어야합니다.

실제 결과 : 'success'경고 메시지 만 표시됩니다.

참고 : 성공 함수에서 반환 된 데이터에 액세스 할 수 있으며 JS 오류가 없습니다.

'customcb'경고 메시지가 표시되지 않는 이유를 알려주십시오. 양식이어야 서버에서 JSONP 응답을 처리하고 있기 때문에

답변

1

이동 "$ 밖으로 jsonpCallback 기능() .ready (function() "코드 블록

function customcb() 
{ 
    alert('customcb'); 
} 
0

:

customcb({<JSON content>}); 

그리고 당신의 jsoncallback은 다음과 같아야합니다

function customcb(o) { 
    console.log(o); 
} 
+0

나는 바이올린을 검사했고, repsonse는 customcb ({ "fname": "이름", "lname": "성"}), 그래서 나는 그것이 문제가 아닌 것 같아요. – refactor

관련 문제