angular.js - angularjs $http.get无法跨域问题
phpcn_u1582
phpcn_u1582 2017-05-15 16:51:47
0
3
635

很简单的段$http.get向接口请求数据的方法。但是就是不知道什么原因,一直提示无法跨域。请问该怎么解决?(PS:在另外一个页面加入API_HOST_URL后,post值到那个路径,没有报过任何无法跨域的报错,但是同样的复制过来,在get方法下却不管用)

function togetpNo($scope,$http){
    var array=$scope.array;
    $http.get(API_HOST_URL+'/ss/test.do?pNo='+array)
     .success(function(data){
 alert(data);
 }).error(function(e){
 alert('请求失败了');
 })
}

报错内容:
XMLHttpRequest cannot load http://datatest.dev:8081/ss/test.do?pNo=h01,h02. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

改成用jsonp写:

 $http.jsonp(API_HOST_URL+"/ss/test.do?jsonp=JSON_CALLBACK&pNo="+array)

报错:Uncaught SyntaxError: Unexpected token :

phpcn_u1582
phpcn_u1582

모든 응답(3)
给我你的怀抱

1) Cross-domain은 어떤 프레임워크를 사용하느냐와는 아무런 관련이 없습니다.
(PS: API_HOST_URL을 다른 페이지에 추가한 후 게시글 값이 해당 경로로 이동하며, Cross-domain 오류는 보고되지 않지만 동일합니다. 복사되어 get에 사용됩니다. 메서드가 작동하지 않습니다.) 다른 페이지 가 귀하의 페이지와 동일한 도메인인가요? 다른 페이지에서 get/jsonp를 사용할 때에도 동일한 문제인가요 ?
2) JSONP를 사용한 후 반환된 데이터 내용이 json 형식 요구 사항을 충족하는지 확인하세요. 그렇지 않으면 유사한 오류가 보고됩니다
잡히지 않은 구문 오류: 예상치 못한 토큰 :

小葫芦

몇 가지 헤더를 추가해야 할 수도 있습니다:

으아악
Ty80

도메인 간을 원할 경우 jsonp가 선호되며 서버가 이를 일반 js 구문 형식으로 반환하는지 확인하세요
예를 들어 반환 값은
var test = {"status":1,"data":5};

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