angular.js - AngularJS는 $http.jsonp 메서드를 사용하여 도메인 전체에서 데이터를 잘못 요청합니다.
巴扎黑
巴扎黑 2017-05-15 16:54:25
0
8
738

AngularJS이 무엇인지 예전부터 알고 있었는데, 오늘 막 사용해 보았는데 이런 문제가 발생했습니다.

코드는 다음과 같습니다.

으아아아

접속 후 브라우저의 개발자 도구를 통해 반환된 상태 코드가 200이고 반환된 json 문자열을 볼 수 있는데, 실행 후에는 항상 error 메서드가 호출되는 것을 확인했습니다. 오랫동안 해결책을 찾을 수 없습니다. 답변을 주실 수 있는 전문가가 있습니까?

巴扎黑
巴扎黑

모든 응답(8)
巴扎黑

클라이언트 측 공식 문서에는 매우 명확하게 나와 있습니다."요청 대상을 지정하는 상대 또는 절대 URL입니다. 콜백 이름은 JSON_CALLBACK 문자열이어야 합니다."서버 측에서 얻은 콜백 매개변수는 각도입니다. angular.callbacks._0 등 클라이언트가 계산합니다(angular는 전송하기 전에 클라이언트의 요청 수를 기반으로 콜백 필드 값을 계산하고 업데이트합니다). 서버는 콜백 필드를 수신한 후 문자열을 사용합니다. 'angular.callbacks._0({json data})'다음과 같이 반환하세요.

으아악
漂亮男人

반환된 json을 게시하고 살펴보세요

迷茫

백엔드 인터페이스는 jsonp 요청에 대해 특수 처리를 수행해야 합니다. 요청은 콜백 매개변수를 전달합니다.

반환은 JavaScript 코드 조각이어야 합니다:

으아악

이는 JSONP가 도메인을 교차할 수 있다는 사실과 관련이 있습니다. JSONP는 스크립트 태그를 요청 전달자로 사용하는 반면 Ajax는 XHR 객체를 사용합니다.

習慣沉默

반품 내용이 다음으로 변경되었습니다:

으아악

해볼까?

左手右手慢动作

jsonp(url,[config])는 JSONP 형식(JSON != JSONP)의 결과만 처리할 수 있습니다. 반환하는 데이터가 JSON 형식인 경우 jsonp()는 이를 구문 분석할 수 없으며 오류를 보고합니다.

过去多啦不再A梦

매개변수는 callback=JSON_CALLBACK이며, 각도는 자동으로 JSON_CALLBACK을 대체하고 callbackName을 할당합니다.
데이터를 요청할 수는 있지만 각도에서 설정한 콜백이 실행되지 않기 때문에 sccess에 들어갈 수 없습니다. 제 생각에는 이것은 약간의 함정이라고 생각합니다. jQuery의 디자인만큼 사용자 친화적이지 않습니다

小葫芦

원본 포스터로 해결됐나요? 나도 당신과 같은 문제에 직면했습니다. 브라우저에서는 정상적으로 성공할 수 있지만 휴대폰에서 디버깅할 때 항상 data=undefine status: 404

오류가 발생합니다.
巴扎黑

원본 포스터로 해결됐나요? 나는 또한 당신과 같은 문제에 직면했습니다.
콘솔 디스플레이: JSON_CALLBACK이 정의되지 않았습니다

$http.jsonp('http://m-static.igrow.cn/01tpl/json/data.json?callback=JSON_CALLBACK');
//이것을 추가하면 데이터를 조정할 수 있지만 느낌은 매우 이상합니다.
window.JSON_CALLBACK = 함수(데이터) {

으아악

};

오류가 반환되었을 때 다른 작업을 수행해야 하면 어떻게 해야 하나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿