angular.js - angularjs $http.get tidak boleh merentas masalah domain
phpcn_u1582
phpcn_u1582 2017-05-15 16:51:47
0
3
667

Kaedah $http.get yang sangat mudah untuk meminta data daripada antara muka. Tetapi saya tidak tahu mengapa, dan ia terus mengatakan bahawa ia tidak boleh merentas domain. Bagaimana untuk menyelesaikannya? (PS: Selepas menambahkan API_HOST_URL ke halaman lain, nilai siaran pergi ke laluan itu dan tiada ralat merentas domain dilaporkan, tetapi salinan yang sama tidak berfungsi di bawah kaedah dapatkan)

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('请求失败了');
 })
}

Kandungan ralat:
XMLHttpRequest tidak boleh memuatkan http://datatest.dev:8081/ss/test.do?pNo=h01,h02. Tiada pengepala 'Access-Control-Allow-Origin' pada sumber yang diminta 'http://localhost:8080' tidak dibenarkan akses.

Ditukar untuk menulis menggunakan jsonp:

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

Ralat: Ralat Sintaks Tidak Ditangkap: Token tidak dijangka:

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