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

很简单的段$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

membalas semua(3)
给我你的怀抱

1) Cross-domain tiada kaitan dengan jenis rangka kerja yang digunakan,
(PS: Selepas menambahkan API_HOST_URL ke halaman lain, nilai siaran pergi ke laluan itu dan tiada ralat merentas domain dilaporkan, tetapi sama Salinnya, tetapi ia tidak berfungsi dalam kaedah get) Adakah halaman lain dalam domain yang sama dengan halaman anda Adakah masalah yang sama semasa menggunakan get /jsonp pada halaman lain ?
2) Selepas menggunakan JSONP, sila semak sama ada kandungan data yang dikembalikan memenuhi keperluan format json Jika tidak, ralat serupa akan dilaporkan
Ralat Sintaks Tidak Ditangkap: Token tidak dijangka :

小葫芦

Anda mungkin perlu menambah beberapa pengepala:

app.all('*', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", ' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});
Ty80

Jika anda ingin merentas domain, jsonp lebih diutamakan dan kemudian pastikan pelayan mengembalikannya dalam format sintaks js biasa
Contohnya, nilai pulangan ialah:
var test = {"status":1,"data":5};

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan