搜索

首页  >  问答  >  正文

javascript - 求救啊,angularjs 我能请求到json数据但是报跨域问题,后端给我的json链接我能打的开,下面是我的请求文件

// angularjs 初始化 ng-app="myApp"

var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope,httpService){
    var obj = {
        'v' : 1,
        'prod_id' : 10,
        't' : 0.6861832864488719,
        'query' : print
    };
    httpService.postDatas('http://sys.hannikang.com/prod/process/prod.ashx?v=1&prod_id=10&t=0.6861832864488719&query=print',obj,function(data){
        console.log(data);
        $scope.names = data;
    })
});
app.service("httpService", function ($http) {
    return {
        getDatas: function (url, obj1, succCallBack, errorCallBack) {
            return $http({
                method: "GET",
                url: url,
                params: obj1 || {}
            }).success(function (data) {
                succCallBack && succCallBack(data);
            }).error(function (data) {
                errorCallBack && errorCallBack(data);
            })
        },
        postDatas: function (url, obj1, succCallBack, errorCallBack) {
            return $http({
                method: "POST",
                url: 'http://sys.hannikang.com/prod/process/prod.ashx?v=1&prod_id=10&t=0.6861832864488719&query=print',
                data: obj1 || {},
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                transformRequest: function (obj) {
                    var str = [];
                    for (var p in obj) {
                        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                    }
                    return str.join("&");
                }
            }).success(function (data) {
                succCallBack && succCallBack(data);
            }).error(function (data) {
                errorCallBack && errorCallBack(data);
            })
        }
    }
});
伊谢尔伦伊谢尔伦2857 天前334

全部回复(5)我来回复

  • 阿神

    阿神2017-05-16 13:01:40

    修改service为

    getDatas: function (url, obj) {
                return $http({
                    method: "GET",
                    url: url,
                    params: obj || {}
                })
                })
            

    调用时

     httpService.postDatas('http://sys.hannikang.com/prod/process/prod.ashx?v=1&prod_id=10&t=0.6861832864488719&query=print',obj={})
     .then(function(data){
     console.log(data)
     })

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:01:40

    通过服务器设置(前端文件所在服务器)允许垮域
    如 nginx 设置如下

    if ($request_method = 'OPTIONS') {

    add_header Access-Control-Allow-Origin *; 
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
    #其他头部信息配置,省略...
    return 204; 

    }

    其他web服务器或后端语言如php均有设置的方法, 查看其下列配置项的方法

    Access-Control-Allow-Origin

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:01:40

    让后端加同源过滤器

    resp.setHeader("Access-Control-Allow-Origin", "*");  
    chain.doFilter(req, resp);

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:01:40

    我下了个本地服务器,公司一个本地服务器,不知道是不是这影响;

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:01:40

    chrome-extension://nlfbmbojpeacfghkpbjhddihlkkiljbi/options.html

    使用chrome下载代理工具

    然后配置你们服务器的地址就可以了,我就是这么干的,懒得搭理那些后台

    回复
    0
  • 取消回复