很简单的段$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 :
1) Cross-domain은 어떤 프레임워크를 사용하느냐와는 아무런 관련이 없습니다.
(PS: API_HOST_URL을 다른 페이지에 추가한 후 게시글 값이 해당 경로로 이동하며, Cross-domain 오류는 보고되지 않지만 동일합니다. 복사되어 get에 사용됩니다. 메서드가 작동하지 않습니다.) 다른 페이지 가 귀하의 페이지와 동일한 도메인인가요? 다른 페이지에서 get/jsonp를 사용할 때에도 동일한 문제인가요 ?
2) JSONP를 사용한 후 반환된 데이터 내용이 json 형식 요구 사항을 충족하는지 확인하세요. 그렇지 않으면 유사한 오류가 보고됩니다
잡히지 않은 구문 오류: 예상치 못한 토큰 :
몇 가지 헤더를 추가해야 할 수도 있습니다:
으아악도메인 간을 원할 경우 jsonp가 선호되며 서버가 이를 일반 js 구문 형식으로 반환하는지 확인하세요
입니다.예를 들어 반환 값은
var test = {"status":1,"data":5};