$ http({method})无效但$ http.get工作

时间:2015-06-26 05:08:09

标签: javascript jquery ajax angularjs xmlhttprequest

问题陈述:在我的项目中,我使用 $ http({方法:  'GET',网址:数据:..... 参数,对于获取发布,它运行正常。但  当我在小提琴中使用相同的方法时,它会阻止我的请求。如果我  使用$ http.get(....然后它将在jsfiddle中工作,不知道为什么

任何人都可以解释一下 $ http.get('http:// ... $ http({mthod)之间的区别 :'GET',....})

请参阅以下两个示例:

1)示例:https://jsfiddle.net/kevalbhatt18/84e02j4t/8/

var promise = $http({
            method : 'GET',
            url : 'http://d.yimg.com/autoc.finance.yahoo.com/autoc',
            data : entity,
            dataType: 'jsonp',
            jsonp: 'callback',
            jsonpCallback: 'YAHOO.Finance.SymbolSuggest.ssCallback',
            headers : {
                'Content-Type' : 'application/json'
            },
            cache : false
        }).then(function (response) {
            return response;
        });

错误:在第一个例子中,在控制台中看到它会给你错误。

XMLHttpRequest cannot load https://autoc.finance.yahoo.com/autoc. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://fiddle.jshell.net' is therefore not allowed access.

2)使用$ http.get(... 示例:http://jsfiddle.net/kevalbhatt18/qny7v23f/

 test: function (param) {

            $http.get('http://d.yimg.com/autoc.finance.yahoo.com/autoc', {
                params: {
                    query: param,
                    callback: 'YAHOO.Finance.SymbolSuggest.ssCallback'
                }
            })
                .success(function (data, status, headers, config) {
                return data;
            })
                .error(function (data, status, headers, config) {
                return "there was an error";
            })
        }
    }

我正在使用Chrome中的Cors应用程序,因此它将添加Access-Control-Allow-Origin'

1 个答案:

答案 0 :(得分:0)

要求远程站点上存在CORS标头,即您要求的标头。不是你的