问题陈述:在我的项目中,我使用 $ 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'
答案 0 :(得分:0)
要求远程站点上存在CORS标头,即您要求的标头。不是你的