2013-03-18 3 views
0

다른 도메인의 응용 프로그램에서 데이터를 가져와야합니다. 내가 JSONP 사용 트링 해요하지만 때마다 나는 '80020101'여기 JSONP를 사용하여 교차 도메인 아약스 요청

여기

public ActionResult Test() 
{ 
    return Json(new { foo = "bar", baz = "Blech" }, JsonRequestBehavior.AllowGet); 
} 
public string Test2() 
{ 
    return "aaa"; 
} 

그리고 '다른 도메인'에서 내 코드 (ASP.NET MVC 4)은 오류가 나의 아약스 방법이 무엇인지 요청을 보냅니다.

$.ajax({ 
    url: 'https://192.168.0.61/CryptoProTestTool/Home/Test2/', 
    type: 'GET', 
    dataType: 'jsonp', 
    error: function(xhr, status, error) { 
     alert("error"); 
    }, 
    success: function(json) { 
     alert("success"); 
    } 
    }); 

무엇이 잘못 되었습니까? 이 간단한 예제에서 왜 항상 오류가 있습니까? 나는

수동 테스트 서비스가 데이터 enter image description here

EDIT 1 보내는 것을 보여줍니다 ... 테스트 및 Test2를 데이터에 문제가 있습니다. "작업을 완료 할 수 없습니다 오류 80020101."을 나는 오류가가 아약스 요청의 오류 기능. 다시 안녕 : 나는이

public ActionResult Test2() 
{ 
    return Content("<script language='javascript' type='text/javascript'>alert('Hello world!');</script>"); 
} 

같은 Test2를 변경하지만 동일한 문제

Edit2가이 시도! 해결책을 찾았지만 실행 한 후에 문제가 나타납니다.

public ActionResult Test2() 
{ 
    return Content("MyMethod('test12345');"); 
} 

그리고 자바 스크립트 코드 :

function onPageLoad() { 
    CheckCryptoProAvailable(); 
} 

function CheckCryptoProAvailable() { 

    $.ajax({ 
    url: 'https://192.168.0.61/CryptoProTestTool/Home/Test2/', 
    type: 'GET', 
    dataType: "jsonp", 
    error: function(xhr, status, error) { 
     alert("error = " + error.toString()); 
    }, 
    success: function(json) { 

    } 
    }); 

} 

function MyMethod(testValue){ 
alert(testValue); 

} 

모든 것이 확인 가고 MyMethod라는 요청 후라고합니다. 하지만 그 후 ajax 요청 오류 처리기에서 창을 참조하십시오. 또 뭐가 잘못 됐니?

enter image description here

답변

1

경우이 오류를받을 수 있나요? 'aaa'는 (는) 올바른 자바 스크립트가 아닙니다. jsonp를 사용하려면 다음과 같이 반환해야합니다.

callbackFunc("aaa"); 
+0

jsonp는 항상 javascript를 반환해야합니까? Like 공용 문자열 Test2() { return "SomeFunction (aaa);"; } – Vitalii

+0

예. http://en.wikipedia.org/wiki/JSONP – user2183861

+0

간단한 자바 스크립트 (Edit1 참조)를 사용했지만 여전히 문제가 있음 – Vitalii

관련 문제