Rumah  >  Soal Jawab  >  teks badan

angular.js - angularjs $http.get无法跨域问题

很简单的段$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_u1582phpcn_u15822714 hari yang lalu608

membalas semua(3)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:53:47

    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 :

    balas
    0
  • 高洛峰

    高洛峰2017-05-15 16:53:47

    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();
    });
    

    balas
    0
  • PHP中文网

    PHP中文网2017-05-15 16:53:47

    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};

    balas
    0
  • Batalbalas