복붙노트

[JQUERY] jQuery로 JSONP 요청 아약스 크로스 도메인 확인

JQUERY

jQuery로 JSONP 요청 아약스 크로스 도메인 확인

해결법


  1. 1.당신은 크로스 도메인 AJAX 호출을하려고합니까? 당신의 서비스는 당신의 동일한 웹 응용 프로그램 경로에서 호스팅되지 않은 의미? 귀하의 웹 서비스는 JSONP을하기 위해 방법 주입을 지원해야합니다.

    당신은 크로스 도메인 AJAX 호출을하려고합니까? 당신의 서비스는 당신의 동일한 웹 응용 프로그램 경로에서 호스팅되지 않은 의미? 귀하의 웹 서비스는 JSONP을하기 위해 방법 주입을 지원해야합니다.

    코드는 잘 보인다 웹 서비스 및 웹 응용 프로그램이 동일한 도메인에서 호스팅되는 경우 작동합니다.

    jQuery를 실제로 쿼리 URL에 새 매개 변수를 추가하는 것을 의미한다 'JSONP': 당신은 데이터 유형 달러 (A $)의 아약스을 수행 할 때.

    예를 들어, 귀하의 URL이 jQuery를 다음 http://10.211.2.219:8080/SampleWebService/sample.do 경우? 콜백 = {some_random_dynamically_generated_method}을 추가합니다.

    이 방법은 실제로 윈도우 객체에 부착 된 프록시의 많은 종류이다. 이것은 아무것도 고유의 것입니다하지만, 같이 뭔가를 수행합니다

    window.some_random_dynamically_generated_method = function(actualJsonpData) {
        //here actually has reference to the success function mentioned with $.ajax
        //so it just calls the success method like this: 
        successCallback(actualJsonData);
    }
    

    요약

    클라이언트 코드가 잘 보인다. 그러나, 당신은 쿼리 문자열로 전달하는 기능 이름으로 JSON 데이터를 포장하기 위해 서버 코드를 수정해야합니다. 즉

    당신은 쿼리 문자열을 요청하는 경우

    ?callback=my_callback_method
    

    다음, 서버 반드시 응답 데이터는 다음과 같이 포장 :

    my_callback_method({your json serialized data});
    

  2. 2.당신은 아약스 - 출처 간 플러그인을 사용합니다 : http://www.ajax-cross-origin.com/

    당신은 아약스 - 출처 간 플러그인을 사용합니다 : http://www.ajax-cross-origin.com/

    그냥 옵션 crossOrigin을 추가 : 사실

    $.ajax({
        crossOrigin: true,
        url: url,
        success: function(data) {
            console.log(data);
        }
    });
    

  3. 3.귀하의 JSON 데이터는 속성 데이터를 포함하고 있지만 데이터에 액세스하고 있습니다. 그것은의 대소 문자 구분

    귀하의 JSON 데이터는 속성 데이터를 포함하고 있지만 데이터에 액세스하고 있습니다. 그것은의 대소 문자 구분

    function jsonparser1() {
        $.ajax({
            type: "GET",
            url: "http://10.211.2.219:8080/SampleWebService/sample.do",
            dataType: "json",
            success: function (xml) {
                alert(xml.Data[0].City);
                result = xml.Code;
                document.myform.result1.value = result;
            },
        });
    }        
    

    편집 또한시와 코드가 잘못된 경우입니다. (감사 @Christopher 케니)

    EDIT2는 또한 JSON, 그리고되지 JSONP한다 (이 경우, 적어도)

    https://stackoverflow.com/a/11736771/325836 압둘 Munim의 : UPDATE는 최신 코멘트에 따르면,이 대답을 읽어야합니다


  4. 4.시험

    시험

    alert(xml.Data[0].City)
    

    대소 문자 구분!


  5. 5.당신은 당신의 XML과 함께 JQuery와 JSON 구문 분석 ... 즉 구문 분석 할 필요가

    당신은 당신의 XML과 함께 JQuery와 JSON 구문 분석 ... 즉 구문 분석 할 필요가

      var parsed_json = $.parseJSON(xml);
    

  6. 6.경보 (xml.data [0] .city);

    경보 (xml.data [0] .city);

    사용 xml.data [ "데이터"] [0] .city 대신


  7. 7.야후에 의해 호스팅 열린 공개 프록시 YQL을 사용합니다. 핸들의 XML 및 HTML

    야후에 의해 호스팅 열린 공개 프록시 YQL을 사용합니다. 핸들의 XML 및 HTML

    https://gist.github.com/rickdog/d66a03d1e1e5959aa9b68869807791d5

  8. from https://stackoverflow.com/questions/11736431/make-cross-domain-ajax-jsonp-request-with-jquery by cc-by-sa and MIT license